From a9953f43181b40b1de36ee4dd7f6494a4a5e470a Mon Sep 17 00:00:00 2001 From: Iizerd <47404005+Iizerd@users.noreply.github.com> Date: Sun, 17 Oct 2021 18:01:27 -0500 Subject: [PATCH] started obfuscator --- .gitignore | 2 + CodeVirtualizer/CodeVirtualizer.vcxproj | 4 +- CodeVirtualizer/Jit.cpp | 4 +- CodeVirtualizer/Jit.h | 6 +- CodeVirtualizer/Main.cpp | 9 +- CodeVirtualizer/NativeCode.cpp | 16 +- CodeVirtualizer/NativeCode.h | 4 +- CodeVirtualizer/Nop.cpp | 16 +- CodeVirtualizer/Nop.h | 2 +- CodeVirtualizer/Obfuscator.h | 20 +- CodeVirtualizer/x64/Debug/Assembly.lst | 4 +- .../x64/Debug/CodeVirtualizer.exe.recipe | 12 +- CodeVirtualizer/x64/Debug/Jit.cod | 6224 +++--- CodeVirtualizer/x64/Debug/Junk.cod | 1213 +- CodeVirtualizer/x64/Debug/Main.cod | 5718 +++-- CodeVirtualizer/x64/Debug/NativeCode.cod | 18529 ++++++++-------- CodeVirtualizer/x64/Debug/Nop.cod | 1427 +- CodeVirtualizer/x64/Debug/Obfuscator.cod | 2 +- CodeVirtualizer/x64/Debug/OpaqueBranching.cod | 2452 +- CodeVirtualizer/x64/Debug/RipAndInst.cod | 1701 +- CodeVirtualizer/x64/Debug/RipMovInst.cod | 1711 +- CodeVirtualizer/x64/Debug/RipOrInst.cod | 1701 +- CodeVirtualizer/x64/Debug/RipXorInst.cod | 1701 +- CodeVirtualizer/x64/Debug/VirtualMachine.cod | 1269 +- CodeVirtualizer/x64/Debug/Virtualizer.cod | 1311 +- CodeVirtualizer/x64/Debug/VmCode.cod | 1291 +- CodeVirtualizer/x64/Debug/XedWrap.cod | 1213 +- x64/Debug/CodeVirtualizer.ilk | Bin 2701876 -> 0 bytes 28 files changed, 22581 insertions(+), 24981 deletions(-) delete mode 100644 x64/Debug/CodeVirtualizer.ilk diff --git a/.gitignore b/.gitignore index 7f4b568..7d5b700 100644 --- a/.gitignore +++ b/.gitignore @@ -34,9 +34,11 @@ *.ipch *.db +x64/ .vs/ *.log *.tlog *.ipdb *.iobj *.idb +*.cod diff --git a/CodeVirtualizer/CodeVirtualizer.vcxproj b/CodeVirtualizer/CodeVirtualizer.vcxproj index ac559d0..f09a649 100644 --- a/CodeVirtualizer/CodeVirtualizer.vcxproj +++ b/CodeVirtualizer/CodeVirtualizer.vcxproj @@ -120,13 +120,13 @@ _DEBUG;_CONSOLE;%(PreprocessorDefinitions) true stdcpp17 - C:\%24Fanta\IntelXED\build\obj\wkit\include;%(AdditionalIncludeDirectories) + build\obj\wkit\include;%(AdditionalIncludeDirectories) All Console true - C:\%24Fanta\IntelXED\build\obj\wkit\lib;%(AdditionalLibraryDirectories) + build\obj\wkit\lib;%(AdditionalLibraryDirectories) xed.lib;%(AdditionalDependencies) diff --git a/CodeVirtualizer/Jit.cpp b/CodeVirtualizer/Jit.cpp index 1883222..3fdee43 100644 --- a/CodeVirtualizer/Jit.cpp +++ b/CodeVirtualizer/Jit.cpp @@ -120,12 +120,12 @@ VOID JitMutateInstForXor(PNATIVE_CODE_LINK Link, PJIT_BITWISE_DATA JitData) } -VOID JitMutateInstForOr(PNATIVE_CODE_LINK Link, PJIT_BITWISE_DATA XorData) +VOID JitMutateInstForOr(PNATIVE_CODE_LINK Link, PJIT_BITWISE_DATA JitData) { } -VOID JitMutateInstForAnd(PNATIVE_CODE_LINK Link, PJIT_BITWISE_DATA XorData) +VOID JitMutateInstForAnd(PNATIVE_CODE_LINK Link, PJIT_BITWISE_DATA JitData) { } diff --git a/CodeVirtualizer/Jit.h b/CodeVirtualizer/Jit.h index b0496c2..2186c82 100644 --- a/CodeVirtualizer/Jit.h +++ b/CodeVirtualizer/Jit.h @@ -34,11 +34,11 @@ BOOL JitDoesInstOverriteConditionFlags(PNATIVE_CODE_LINK Link); BOOL JitAreFlagsClobberedBeforeUse(PNATIVE_CODE_LINK Link); -VOID JitMutateInstForXor(PNATIVE_CODE_LINK Link, PJIT_BITWISE_DATA XorData); +VOID JitMutateInstForXor(PNATIVE_CODE_LINK Link, PJIT_BITWISE_DATA JitData); -VOID JitMutateInstForOr(PNATIVE_CODE_LINK Link, PJIT_BITWISE_DATA XorData); +VOID JitMutateInstForOr(PNATIVE_CODE_LINK Link, PJIT_BITWISE_DATA JitData); -VOID JitMutateInstForAnd(PNATIVE_CODE_LINK Link, PJIT_BITWISE_DATA XorData); +VOID JitMutateInstForAnd(PNATIVE_CODE_LINK Link, PJIT_BITWISE_DATA JitData); PNATIVE_CODE_BLOCK JitEmitPreRipMov(PNATIVE_CODE_LINK Link, INT32 Delta = 0); diff --git a/CodeVirtualizer/Main.cpp b/CodeVirtualizer/Main.cpp index e2f43e8..39db16e 100644 --- a/CodeVirtualizer/Main.cpp +++ b/CodeVirtualizer/Main.cpp @@ -2,7 +2,8 @@ #include #include - +#include "Windas.h" +#include "XedWrap.h" #include "NativeCode.h" #include "RipXorInst.h" #include "RipMovInst.h" @@ -45,7 +46,6 @@ int main() XedTablesInit(); srand(time(NULL)); - NATIVE_CODE_BLOCK Block; NcDisassemble(&Block, TestBuffer, TestBufferSize); NATIVE_CODE_BLOCK NotTaken; @@ -53,11 +53,6 @@ int main() printf("\n\nOriginal\n"); NcDebugPrint(&Block); ObfCreateOpaqueBranches(Block.Start->Next, Block.Start->Next->Next->Next->Next, &NotTaken, &Taken); - //printf("\n\nNotTaken\n"); - //NcDebugPrint(&NotTaken); - //printf("\n\nTaken\n"); - //NcDebugPrint(&Taken); - //printf("\n\nCombined\n"); ObfCombineOpaqueBranches(&NotTaken, &Taken, NcGenUnusedLabelId(&Block), NcGenUnusedLabelId(&Block)); ObfInsertOpaqueBranchBlock(Block.Start->Next, Block.Start->Next->Next->Next->Next, &NotTaken); printf("\n\nNew\n"); diff --git a/CodeVirtualizer/NativeCode.cpp b/CodeVirtualizer/NativeCode.cpp index af44937..dd5d44e 100644 --- a/CodeVirtualizer/NativeCode.cpp +++ b/CodeVirtualizer/NativeCode.cpp @@ -121,7 +121,19 @@ VOID NcUnlink(PNATIVE_CODE_LINK Link) } } -ULONG NcCalcBlockSize(PNATIVE_CODE_BLOCK Block) +ULONG NcCountInstructions(PNATIVE_CODE_BLOCK Block) +{ + ULONG InstructionCount = 0; + for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) + { + if (T->Flags & CODE_FLAG_IS_LABEL) + continue; + ++InstructionCount; + } + return InstructionCount; +} + +ULONG NcCalcBlockSizeInBytes(PNATIVE_CODE_BLOCK Block) { ULONG TotalSize = 0; for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) @@ -498,7 +510,7 @@ PVOID NcAssemble(PNATIVE_CODE_BLOCK Block, PULONG OutSize) if (!NcFixRelJmps(Block)) return NULL; - *OutSize = NcCalcBlockSize(Block); + *OutSize = NcCalcBlockSizeInBytes(Block); PUCHAR Buffer = (PUCHAR)malloc(*OutSize); if (!Buffer) diff --git a/CodeVirtualizer/NativeCode.h b/CodeVirtualizer/NativeCode.h index c1a7d6a..6f2998c 100644 --- a/CodeVirtualizer/NativeCode.h +++ b/CodeVirtualizer/NativeCode.h @@ -41,7 +41,9 @@ VOID NcInsertLinkBefore(PNATIVE_CODE_LINK Link1, PNATIVE_CODE_LINK Link2); VOID NcUnlink(PNATIVE_CODE_LINK Link); -ULONG NcCalcBlockSize(PNATIVE_CODE_BLOCK Block); +ULONG NcCountInstructions(PNATIVE_CODE_BLOCK Block); + +ULONG NcCalcBlockSizeInBytes(PNATIVE_CODE_BLOCK Block); VOID NcChangeLabelId(PNATIVE_CODE_BLOCK Block1, ULONG Original, ULONG New); diff --git a/CodeVirtualizer/Nop.cpp b/CodeVirtualizer/Nop.cpp index 6178673..993e03c 100644 --- a/CodeVirtualizer/Nop.cpp +++ b/CodeVirtualizer/Nop.cpp @@ -3,25 +3,19 @@ PNATIVE_CODE_LINK NcEmitNop() { UCHAR RawData[] = { 0x90 }; - PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, 1); - XedDecode(&Link->XedInstruction, Link->RawData, 1); + PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, 1, TRUE); + //XedDecode(&Link->XedInstruction, Link->RawData, 1); return Link; } -PNATIVE_CODE_BLOCK NcEmitNopGroup(ULONG Count) +BOOL NcEmitNopGroup(ULONG Count, PNATIVE_CODE_BLOCK Block) { if (Count < 1) - return NULL; - - PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; - if (!Block) - return NULL; - + return FALSE; while (Count) { NcAppendToBlock(Block, NcEmitNop()); Count--; } - - return Block; + return TRUE; } \ No newline at end of file diff --git a/CodeVirtualizer/Nop.h b/CodeVirtualizer/Nop.h index 929471b..46950c9 100644 --- a/CodeVirtualizer/Nop.h +++ b/CodeVirtualizer/Nop.h @@ -7,6 +7,6 @@ PNATIVE_CODE_LINK NcEmitNop(); -PNATIVE_CODE_BLOCK NcEmitNopGroup(ULONG Count); +BOOL NcEmitNopGroup(ULONG Count, PNATIVE_CODE_BLOCK Block) #endif \ No newline at end of file diff --git a/CodeVirtualizer/Obfuscator.h b/CodeVirtualizer/Obfuscator.h index 33122f4..855ee72 100644 --- a/CodeVirtualizer/Obfuscator.h +++ b/CodeVirtualizer/Obfuscator.h @@ -2,9 +2,27 @@ #define __OBFUSCATOR_H +#include "Windas.h" +#include "XedWrap.h" +#include "NativeCode.h" +#include "Jit.h" +#include "OpaqueBranching.h" +#define OBF_ATTRIBUTE_JIT (1<<0) +#define OBF_ATTRIBUTE_OPAQUE_BRANCHES (1<<1) -#define OBF_FLAG_IS_CODE_WRITEABLE (1<<0) //If this is set, JIT can be used +typedef struct _OBFUSCATOR +{ + ULONG MinBlockSize; + PNATIVE_CODE_BLOCK Block; +}OBFUSCATOR, *POBFUSCATOR; + +//recursive obfuscation routine +VOID ObfObfuscate(PNATIVE_CODE_BLOCK Block) +{ + ULONG InstructionCount = NcCountInstructions(Block); + +} #endif \ No newline at end of file diff --git a/CodeVirtualizer/x64/Debug/Assembly.lst b/CodeVirtualizer/x64/Debug/Assembly.lst index bedac6e..7c0c08f 100644 --- a/CodeVirtualizer/x64/Debug/Assembly.lst +++ b/CodeVirtualizer/x64/Debug/Assembly.lst @@ -1,4 +1,4 @@ -Microsoft (R) Macro Assembler (x64) Version 14.27.29111.0 10/16/21 19:53:02 +Microsoft (R) Macro Assembler (x64) Version 14.29.30038.1 10/17/21 15:17:32 Assembly.asm Page 1 - 1 @@ -6,7 +6,7 @@ Assembly.asm Page 1 - 1 END - Microsoft (R) Macro Assembler (x64) Version 14.27.29111.0 10/16/21 19:53:02 + Microsoft (R) Macro Assembler (x64) Version 14.29.30038.1 10/17/21 15:17:32 Assembly.asm Symbols 2 - 1 diff --git a/CodeVirtualizer/x64/Debug/CodeVirtualizer.exe.recipe b/CodeVirtualizer/x64/Debug/CodeVirtualizer.exe.recipe index fce1cf4..dfc4423 100644 --- a/CodeVirtualizer/x64/Debug/CodeVirtualizer.exe.recipe +++ b/CodeVirtualizer/x64/Debug/CodeVirtualizer.exe.recipe @@ -1,7 +1,11 @@  - C:\$Fanta\code-virtualizer\x64\Debug\CodeVirtualizer.exe - - - + + + C:\@\Work\code-virtualizer\x64\Debug\CodeVirtualizer.exe + + + + + \ No newline at end of file diff --git a/CodeVirtualizer/x64/Debug/Jit.cod b/CodeVirtualizer/x64/Debug/Jit.cod index 394117e..e3a7666 100644 --- a/CodeVirtualizer/x64/Debug/Jit.cod +++ b/CodeVirtualizer/x64/Debug/Jit.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@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 @@ -33,56 +33,58 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon 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 -__886F7F70_xloctime DB 01H -__3DD0E9E9_xed-util@h DB 01H -__209FD46F_xed-iform-map@h DB 01H -__4E05E119_xed-inst@h DB 01H -__0607FC5A_xed-flags@h DB 01H -__B4910D57_xed-operand-accessors@h DB 01H -__8663E876_xed-state@h DB 01H -__BB5B4FF8_xed-encode@h DB 01H -__21860875_xed-encoder-hl@h DB 01H -__F7815311_xed-decoded-inst-api@h DB 01H -__DD050276_Jit@cpp DB 01H -__BF2A7ACC_vector DB 01H -__7EA464AF_istream DB 01H -__1D745195_ostream DB 01H -__6FFBAAB7_streambuf DB 01H -__528871F3_iterator DB 01H -__3E6EDFAA_iosfwd DB 01H -__CF1C1A3F_utility DB 01H -__38038D2D_xstddef DB 01H -__EE19A480_xatomic@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 @@ -91,6 +93,8 @@ PUBLIC ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ; __empty_global_d 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 PUBLIC ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs PUBLIC ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr @@ -132,13 +136,13 @@ 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@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' -PUBLIC ??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `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@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `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@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +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 @@ -194,133 +198,145 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + 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+70 + 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+70 + 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+75 + 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+106 + 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+476 + 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 $LN7 - DD imagerel $LN7+233 +$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+584 + 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+165 + 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+223 + 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+379 + 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+379 + 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+105 + 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+100 + 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+202 + 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+108 + 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+280 + 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+80 + 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+71 + 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+71 + 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+105 + 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+278 + DD imagerel $LN6+280 DD imagerel $unwind$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata @@ -332,7 +348,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN6 - DD imagerel $LN6+278 + DD imagerel $LN6+280 DD imagerel $unwind$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata @@ -344,49 +360,49 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z DD imagerel $LN11 - DD imagerel $LN11+399 + 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+308 + 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+234 + 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+329 + 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+331 + 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+69 + 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+69 + 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+1056 + DD imagerel $LN25+1033 DD imagerel $unwind$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z pdata ENDS ; COMDAT pdata @@ -404,7 +420,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD imagerel $LN25 - DD imagerel $LN25+1241 + DD imagerel $LN25+1243 DD imagerel $unwind$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z pdata ENDS ; COMDAT pdata @@ -422,7 +438,7 @@ 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+1132 + 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 @@ -434,7 +450,7 @@ 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+1266 + 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 @@ -446,61 +462,61 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN8 - DD imagerel $LN8+197 + 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+197 + 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+197 + 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+76 + 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+107 + 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+89 + 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+75 + 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+121 + 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+95 + 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+97 + 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 @@ -521,21 +537,21 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_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.27.29110\include\xlocnum', 00H ; `string' + 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@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@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.27.29110\include\xlocale', 00H ; `string' +??_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 @@ -554,9 +570,9 @@ CONST SEGMENT 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@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ +; 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@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' +??_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 @@ -569,16 +585,16 @@ CONST SEGMENT 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, '7', 00H, '.', 00H, '2', 00H, '9', 00H, '1', 00H - DB '1', 00H, '0', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' + 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@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_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.27.29110\include\xmemory', 00H ; `string' + DB 'ols\MSVC\14.29.30037\include\xmemory', 00H ; `string' CONST ENDS ; COMDAT ??_C@_02DKCKIIND@?$CFs@ CONST SEGMENT @@ -590,11 +606,11 @@ CONST SEGMENT 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 084H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var +?__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 025053401H +$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 @@ -612,7 +628,7 @@ $cppxdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@Y 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 025052f19H +$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 @@ -632,7 +648,7 @@ $cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025052f19H +$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025051819H DD 01132318H DD 0700c001dH DD 0500bH @@ -641,105 +657,58 @@ $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025052f19H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 060H - DD imagerel $ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025053419H +$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Delete_plain_internal@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$??$_Delete_plain_internal@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$??$_Delete_plain_internal@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$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025052f19H +$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 - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Delete_plain_internal@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$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DB 060H - DD imagerel $ip2state$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD 025052f19H +$unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD 025051801H DD 01132318H DD 0700c0021H DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 060H - DD imagerel $ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025052f19H +$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025053701H +$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 025053701H +$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 025053701H +$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 @@ -751,7 +720,7 @@ 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 0a9H, 02H + DB 'M', 02H DB 02H DB 'p' DB 00H @@ -770,13 +739,18 @@ $cppxdata$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_L xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DD 025053911H +$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 @@ -788,7 +762,7 @@ 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 0a9H, 02H + DB 'M', 02H DB 02H DB 'p' DB 00H @@ -807,13 +781,28 @@ $cppxdata$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LI xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DD 025053911H +$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 @@ -831,7 +820,7 @@ xdata SEGMENT $ip2state$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DB 0aH DB 00H DB 00H - DB 0c1H, 02H + DB 0c9H, 02H DB 02H DB 'p' DB 00H @@ -856,7 +845,7 @@ $cppxdata$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD 025053f19H +$unwind$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD 025054119H DD 01122317H DD 0700b007fH DD 0500aH @@ -885,6 +874,16 @@ CONST SEGMENT 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 @@ -902,7 +901,7 @@ 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 02H DB 'p' DB 00H @@ -927,7 +926,7 @@ $cppxdata$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD 025052e11H +$unwind$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD 025051711H DD 01122317H DD 0700b007dH DD 0500aH @@ -936,28 +935,33 @@ $unwind$?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 025052f01H +$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 025052f01H +$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 025052f01H +$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 025053b19H +$unwind$?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025053d19H DD 010e2313H DD 070070031H DD 05006H @@ -984,25 +988,35 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025052a01H +$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 025052f01H +$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 025052e01H +$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 @@ -1014,7 +1028,7 @@ xdata SEGMENT $ip2state$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 06H DB 00H DB 00H - DB 0b8H + DB 0bcH DB 02H DB 09eH DB 00H @@ -1033,7 +1047,7 @@ $cppxdata$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035053b19H +$unwind$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035053d19H DD 010e3313H DD 070070031H DD 05006H @@ -1060,6 +1074,16 @@ CONST SEGMENT 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 @@ -1071,7 +1095,7 @@ xdata SEGMENT $ip2state$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 06H DB 00H DB 00H - DB 0b8H + DB 0bcH DB 02H DB 09eH DB 00H @@ -1090,7 +1114,7 @@ $cppxdata$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035053b19H +$unwind$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035053d19H DD 010e3313H DD 070070031H DD 05006H @@ -1119,57 +1143,31 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z DD 025052e01H +$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 025052a01H +$unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DB 060H - DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ -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 025052a19H +$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 - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DB 060H - DD imagerel $ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD 025052a19H +$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT @@ -1184,7 +1182,7 @@ $cppxdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025052a19H +$unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025051319H DD 010e2313H DD 07007002fH DD 05006H @@ -1193,31 +1191,24 @@ $unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025052a19H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025053401H +$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 -$ip2state$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DB 060H - DD imagerel $ip2state$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025053b19H +$unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025053d19H DD 010e2313H DD 070070029H DD 05006H - DD imagerel __GSHandlerCheck_EH4 - DD imagerel $cppxdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ - DD 013bH + DD imagerel __GSHandlerCheck + DD 0138H xdata ENDS ; COMDAT CONST CONST SEGMENT @@ -1236,49 +1227,54 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025053401H +$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 025052e01H +$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 025063501H +$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 025063501H +$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 035053401H +$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 035052a01H +$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 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -1321,137 +1317,92 @@ CONST SEGMENT 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 -$ip2state$?_Orphan_all@_Container_base12@std@@QEAAXXZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DB 060H - DD imagerel $ip2state$?_Orphan_all@_Container_base12@std@@QEAAXXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025053b19H +$unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD 025053d19H DD 010e2313H - DD 070070025H + DD 070070021H DD 05006H - DD imagerel __GSHandlerCheck_EH4 - DD imagerel $cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ - DD 011bH + DD imagerel __GSHandlerCheck + DD 0f8H xdata ENDS ; COMDAT CONST CONST SEGMENT -?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all +?_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@_Container_base12@std@@QEAAXXZ$rtcVarDesc DD 024H ; std::_Container_base12::_Orphan_all +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc DD 024H ; std::_Container_base12::_Orphan_all_locked DD 04H - DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 + DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcName$0 ORG $+48 -?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all_locked DD 00H - DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcVarDesc + DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035052f01H - DD 01133318H - DD 0700c002fH - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$wmemcpy DD 025053401H - DD 0118231dH - DD 07011001dH - DD 05010H +$unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD 025051301H + DD 010e2313H + DD 070070021H + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H +$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035051801H + DD 01133318H + DD 0700c002fH + DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +$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 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -1461,15 +1412,15 @@ __JustMyCode_Default PROC ; COMDAT __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.27.29110\include\xmemory +; 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 -__formal$ = 224 +_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 >::deallocate, COMDAT -; 687 : static void deallocate(_Alloc&, const pointer _Ptr, const size_type _Count) { +; 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 @@ -1480,44 +1431,46 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 688 : // no overflow check on the following multiply; we assume _Allocate did that check -; 689 : _Deallocate<_New_alignof>(_Ptr, sizeof(value_type) * _Count); - - 00040 48 6b 85 f0 00 + 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>(_Ptr, sizeof(value_type) * _Count); + + 00029 48 6b 85 f0 00 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 - 00048 48 8b d0 mov rdx, rax - 0004b 48 8b 8d e8 00 + 00031 48 8b d0 mov rdx, rax + 00034 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00052 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + 0003b e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> -; 690 : } +; 703 : } +; 704 : } - 00057 48 8d a5 c8 00 + 00040 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005e 5f pop rdi - 0005f 5d pop rbp - 00060 c3 ret 0 + 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 >::deallocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; 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 >, COMDAT -; 998 : void _Deallocate_plain(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { +; 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 @@ -1527,52 +1480,46 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 999 : // deallocate a plain pointer using an allocator -; 1000 : using _Alloc_traits = allocator_traits<_Alloc>; -; 1001 : if constexpr (is_same_v<_Alloc_ptr_t<_Alloc>, typename _Alloc::value_type*>) { -; 1002 : _Alloc_traits::deallocate(_Al, _Ptr, 1); - - 0003b 41 b8 01 00 00 + 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 - 00041 48 8b 95 e8 00 + 0002a 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00048 48 8b 8d e0 00 + 00031 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Al$[rbp] - 0004f 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 >::deallocate - 00054 90 npad 1 + 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 >::deallocate + 0003d 90 npad 1 -; 1003 : } else { -; 1004 : using _Ptr_traits = pointer_traits<_Alloc_ptr_t<_Alloc>>; -; 1005 : _Alloc_traits::deallocate(_Al, _Ptr_traits::pointer_to(*_Ptr), 1); -; 1006 : } -; 1007 : } +; 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 : } - 00055 48 8d a5 c8 00 + 0003e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005c 5f pop rdi - 0005d 5d pop rbp - 0005e c3 ret 0 + 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 > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; 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 -; 213 : void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { +; 251 : _CONSTEXPR20_DYNALLOC void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { $LN4: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -1582,57 +1529,57 @@ $LN4: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 214 : // deallocate storage allocated by _Allocate when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ -; 215 : #if defined(_M_IX86) || defined(_M_X64) -; 216 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization - - 0003b 48 81 bd e8 00 + 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 - 00046 72 13 jb SHORT $LN2@Deallocate + 0002f 72 13 jb SHORT $LN2@Deallocate -; 217 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); +; 261 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); - 00048 48 8d 95 e8 00 + 00031 48 8d 95 e8 00 00 00 lea rdx, QWORD PTR _Bytes$[rbp] - 0004f 48 8d 8d e0 00 + 00038 48 8d 8d e0 00 00 00 lea rcx, QWORD PTR _Ptr$[rbp] - 00056 e8 00 00 00 00 call ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned + 0003f e8 00 00 00 00 call ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned $LN2@Deallocate: -; 218 : } -; 219 : #endif // defined(_M_IX86) || defined(_M_X64) -; 220 : -; 221 : ::operator delete(_Ptr, _Bytes); +; 262 : } +; 263 : #endif // defined(_M_IX86) || defined(_M_X64) +; 264 : ::operator delete(_Ptr, _Bytes); - 0005b 48 8b 95 e8 00 + 00044 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Bytes$[rbp] - 00062 48 8b 8d e0 00 + 0004b 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00069 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete - 0006e 90 npad 1 + 00052 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00057 90 npad 1 -; 222 : } +; 265 : } +; 266 : } - 0006f 48 8d a5 c8 00 + 00058 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00076 5f pop rdi - 00077 5d pop rbp - 00078 c3 ret 0 + 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.27.29110\include\xmemory +; 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 @@ -1640,7 +1587,7 @@ _Last$ = 232 _Al$ = 240 ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z PROC ; std::_Destroy_range >, COMDAT -; 955 : void _Destroy_range(_Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept { +; 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 @@ -1651,42 +1598,35 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - -; 956 : // note that this is an optimization for debug mode codegen; in release mode the BE removes all of this -; 957 : using _Ty = typename _Alloc::value_type; -; 958 : if _CONSTEXPR_IF (!conjunction_v, _Uses_default_destroy<_Alloc, _Ty*>>) { -; 959 : for (; _First != _Last; ++_First) { -; 960 : allocator_traits<_Alloc>::destroy(_Al, _Unfancy(_First)); -; 961 : } -; 962 : } -; 963 : } - - 00041 48 8d a5 c8 00 + 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, _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] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 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 > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; 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 >, COMDAT -; 1026 : void _Delete_plain_internal(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { +; 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 @@ -1696,39 +1636,32 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1027 : // destroy *_Ptr in place, then deallocate _Ptr using _Al; used for internal container types the user didn't name -; 1028 : using _Ty = typename _Alloc::value_type; -; 1029 : _Ptr->~_Ty(); -; 1030 : _Deallocate_plain(_Al, _Ptr); - - 0003b 48 8b 95 e8 00 + 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] - 00042 48 8b 8d e0 00 + 0002b 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Al$[rbp] - 00049 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 > - 0004e 90 npad 1 + 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 > -; 1031 : } +; 1003 : } - 0004f 48 8d a5 c8 00 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00056 5f pop rdi - 00057 5d pop rbp - 00058 c3 ret 0 + 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 > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\utility +; 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 @@ -1736,7 +1669,7 @@ _Val$ = 256 _New_val$ = 264 ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z PROC ; std::exchange, COMDAT -; 597 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { +; 614 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -1746,55 +1679,49 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__CF1C1A3F_utility - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7ADD299_utility + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 598 : // assign _New_val to _Val, return previous _Val -; 599 : _Ty _Old_val = static_cast<_Ty&&>(_Val); +; 615 : // assign _New_val to _Val, return previous _Val +; 616 : _Ty _Old_val = static_cast<_Ty&&>(_Val); - 0003b 48 8b 85 00 01 + 00024 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Val$[rbp] - 00042 48 8b 00 mov rax, QWORD PTR [rax] - 00045 48 89 45 08 mov QWORD PTR _Old_val$[rbp], rax + 0002b 48 8b 00 mov rax, QWORD PTR [rax] + 0002e 48 89 45 08 mov QWORD PTR _Old_val$[rbp], rax -; 600 : _Val = static_cast<_Other&&>(_New_val); +; 617 : _Val = static_cast<_Other&&>(_New_val); - 00049 48 8b 85 00 01 + 00032 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Val$[rbp] - 00050 48 8b 8d 08 01 + 00039 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _New_val$[rbp] - 00057 48 8b 09 mov rcx, QWORD PTR [rcx] - 0005a 48 89 08 mov QWORD PTR [rax], rcx + 00040 48 8b 09 mov rcx, QWORD PTR [rcx] + 00043 48 89 08 mov QWORD PTR [rax], rcx -; 601 : return _Old_val; +; 618 : return _Old_val; - 0005d 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] + 00046 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] -; 602 : } +; 619 : } - 00061 48 8d a5 e8 00 + 0004a 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00068 5f pop rdi - 00069 5d pop rbp - 0006a c3 ret 0 + 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 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; 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::allocator, COMDAT -; 799 : constexpr allocator(const allocator<_Other>&) noexcept {} +; 829 : constexpr allocator(const allocator<_Other>&) noexcept {} $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -1804,26 +1731,20 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 85 e0 00 + 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] - 00042 48 8d a5 c8 00 + 0002b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00049 5f pop rdi - 0004a 5d pop rbp - 0004b c3 ret 0 + 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::allocator _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT tv64 = 192 @@ -1845,83 +1766,77 @@ $LN8: 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 8b fc mov rdi, rsp - 00024 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 00029 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002e f3 ab rep stosd - 00030 8b 8c 24 18 01 - 00 00 mov ecx, DWORD PTR [rsp+280] - 00037 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 0003e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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) - 00043 8b 85 f0 00 00 + 0002d 8b 85 f0 00 00 00 mov eax, DWORD PTR OpType$[rbp] - 00049 89 85 c0 00 00 + 00033 89 85 c0 00 00 00 mov DWORD PTR tv64[rbp], eax - 0004f 83 bd c0 00 00 + 00039 83 bd c0 00 00 00 00 cmp DWORD PTR tv64[rbp], 0 - 00056 74 14 je SHORT $LN4@JitiEmitWr - 00058 83 bd c0 00 00 + 00040 74 14 je SHORT $LN4@JitiEmitWr + 00042 83 bd c0 00 00 00 01 cmp DWORD PTR tv64[rbp], 1 - 0005f 74 26 je SHORT $LN5@JitiEmitWr - 00061 83 bd c0 00 00 + 00049 74 26 je SHORT $LN5@JitiEmitWr + 0004b 83 bd c0 00 00 00 02 cmp DWORD PTR tv64[rbp], 2 - 00068 74 38 je SHORT $LN6@JitiEmitWr - 0006a eb 4f jmp SHORT $LN2@JitiEmitWr + 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); - 0006c 44 8b 85 08 01 + 00056 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 00073 8b 95 00 01 00 + 0005d 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00079 48 8b 8d f8 00 + 00063 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 00080 e8 00 00 00 00 call ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorB - 00085 eb 34 jmp SHORT $LN1@JitiEmitWr + 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); - 00087 44 8b 85 08 01 + 00071 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 0008e 8b 95 00 01 00 + 00078 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00094 48 8b 8d f8 00 + 0007e 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 0009b e8 00 00 00 00 call ?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndB - 000a0 eb 19 jmp SHORT $LN1@JitiEmitWr + 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); - 000a2 44 8b 85 08 01 + 0008c 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 000a9 8b 95 00 01 00 + 00093 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000af 48 8b 8d f8 00 + 00099 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 000b6 e8 00 00 00 00 call ?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrB + 000a0 e8 00 00 00 00 call ?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrB $LN2@JitiEmitWr: $LN1@JitiEmitWr: ; 292 : } ; 293 : } - 000bb 48 8d a5 d8 00 + 000a5 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 000c2 5f pop rdi - 000c3 5d pop rbp - 000c4 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT tv64 = 192 @@ -1943,83 +1858,77 @@ $LN8: 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 8b fc mov rdi, rsp - 00024 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 00029 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002e f3 ab rep stosd - 00030 8b 8c 24 18 01 - 00 00 mov ecx, DWORD PTR [rsp+280] - 00037 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 0003e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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) - 00043 8b 85 f0 00 00 + 0002d 8b 85 f0 00 00 00 mov eax, DWORD PTR OpType$[rbp] - 00049 89 85 c0 00 00 + 00033 89 85 c0 00 00 00 mov DWORD PTR tv64[rbp], eax - 0004f 83 bd c0 00 00 + 00039 83 bd c0 00 00 00 00 cmp DWORD PTR tv64[rbp], 0 - 00056 74 14 je SHORT $LN4@JitiEmitWr - 00058 83 bd c0 00 00 + 00040 74 14 je SHORT $LN4@JitiEmitWr + 00042 83 bd c0 00 00 00 01 cmp DWORD PTR tv64[rbp], 1 - 0005f 74 26 je SHORT $LN5@JitiEmitWr - 00061 83 bd c0 00 00 + 00049 74 26 je SHORT $LN5@JitiEmitWr + 0004b 83 bd c0 00 00 00 02 cmp DWORD PTR tv64[rbp], 2 - 00068 74 38 je SHORT $LN6@JitiEmitWr - 0006a eb 4f jmp SHORT $LN2@JitiEmitWr + 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); - 0006c 44 8b 85 08 01 + 00056 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 00073 8b 95 00 01 00 + 0005d 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00079 48 8b 8d f8 00 + 00063 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 00080 e8 00 00 00 00 call ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorW - 00085 eb 34 jmp SHORT $LN1@JitiEmitWr + 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); - 00087 44 8b 85 08 01 + 00071 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 0008e 8b 95 00 01 00 + 00078 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00094 48 8b 8d f8 00 + 0007e 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 0009b e8 00 00 00 00 call ?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndW - 000a0 eb 19 jmp SHORT $LN1@JitiEmitWr + 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); - 000a2 44 8b 85 08 01 + 0008c 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 000a9 8b 95 00 01 00 + 00093 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000af 48 8b 8d f8 00 + 00099 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 000b6 e8 00 00 00 00 call ?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrW + 000a0 e8 00 00 00 00 call ?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrW $LN2@JitiEmitWr: $LN1@JitiEmitWr: ; 283 : } ; 284 : } - 000bb 48 8d a5 d8 00 + 000a5 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 000c2 5f pop rdi - 000c3 5d pop rbp - 000c4 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT tv64 = 192 @@ -2041,83 +1950,77 @@ $LN8: 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 8b fc mov rdi, rsp - 00024 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 00029 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002e f3 ab rep stosd - 00030 8b 8c 24 18 01 - 00 00 mov ecx, DWORD PTR [rsp+280] - 00037 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 0003e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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) - 00043 8b 85 f0 00 00 + 0002d 8b 85 f0 00 00 00 mov eax, DWORD PTR OpType$[rbp] - 00049 89 85 c0 00 00 + 00033 89 85 c0 00 00 00 mov DWORD PTR tv64[rbp], eax - 0004f 83 bd c0 00 00 + 00039 83 bd c0 00 00 00 00 cmp DWORD PTR tv64[rbp], 0 - 00056 74 14 je SHORT $LN4@JitiEmitWr - 00058 83 bd c0 00 00 + 00040 74 14 je SHORT $LN4@JitiEmitWr + 00042 83 bd c0 00 00 00 01 cmp DWORD PTR tv64[rbp], 1 - 0005f 74 26 je SHORT $LN5@JitiEmitWr - 00061 83 bd c0 00 00 + 00049 74 26 je SHORT $LN5@JitiEmitWr + 0004b 83 bd c0 00 00 00 02 cmp DWORD PTR tv64[rbp], 2 - 00068 74 38 je SHORT $LN6@JitiEmitWr - 0006a eb 4f jmp SHORT $LN2@JitiEmitWr + 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); - 0006c 44 8b 85 08 01 + 00056 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 00073 8b 95 00 01 00 + 0005d 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00079 48 8b 8d f8 00 + 00063 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 00080 e8 00 00 00 00 call ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorD - 00085 eb 34 jmp SHORT $LN1@JitiEmitWr + 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); - 00087 44 8b 85 08 01 + 00071 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 0008e 8b 95 00 01 00 + 00078 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00094 48 8b 8d f8 00 + 0007e 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 0009b e8 00 00 00 00 call ?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndD - 000a0 eb 19 jmp SHORT $LN1@JitiEmitWr + 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); - 000a2 44 8b 85 08 01 + 0008c 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 000a9 8b 95 00 01 00 + 00093 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000af 48 8b 8d f8 00 + 00099 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 000b6 e8 00 00 00 00 call ?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrD + 000a0 e8 00 00 00 00 call ?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrD $LN2@JitiEmitWr: $LN1@JitiEmitWr: ; 274 : } ; 275 : } - 000bb 48 8d a5 d8 00 + 000a5 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 000c2 5f pop rdi - 000c3 5d pop rbp - 000c4 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; 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 @@ -2160,405 +2063,399 @@ $LN29: 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 8b fc mov rdi, rsp - 00025 b9 b2 00 00 00 mov ecx, 178 ; 000000b2H - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 e8 - 02 00 00 mov rcx, QWORD PTR [rsp+744] - 00039 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; - 00045 33 d2 xor edx, edx - 00047 48 8b 85 c0 02 + 0002e 33 d2 xor edx, edx + 00030 48 8b 85 c0 02 00 00 mov rax, QWORD PTR Link$[rbp] - 0004e 8b 40 28 mov eax, DWORD PTR [rax+40] - 00051 b9 04 00 00 00 mov ecx, 4 - 00056 f7 f1 div ecx - 00058 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 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; - 0005b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0005e c1 e0 02 shl eax, 2 - 00061 48 8b 8d c0 02 + 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] - 00068 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 0006b 2b c8 sub ecx, eax - 0006d 8b c1 mov eax, ecx - 0006f 33 d2 xor edx, edx - 00071 b9 02 00 00 00 mov ecx, 2 - 00076 f7 f1 div ecx - 00078 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + 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)); - 0007b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0007e c1 e0 02 shl eax, 2 - 00081 48 8b 8d c0 02 + 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] - 00088 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 0008b 2b c8 sub ecx, eax - 0008d 8b c1 mov eax, ecx - 0008f 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00092 d1 e1 shl ecx, 1 - 00094 2b c1 sub eax, ecx - 00096 89 45 44 mov DWORD PTR OneByte$[rbp], eax + 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; - 00099 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0009e e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 000a3 48 89 85 e8 01 + 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 - 000aa 48 83 bd e8 01 + 00093 48 83 bd e8 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 000b2 74 15 je SHORT $LN16@JitEmitPos - 000b4 48 8b 8d e8 01 + 0009b 74 15 je SHORT $LN16@JitEmitPos + 0009d 48 8b 8d e8 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000bb e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 000c0 48 89 85 98 02 + 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 - 000c7 eb 0b jmp SHORT $LN17@JitEmitPos + 000b0 eb 0b jmp SHORT $LN17@JitEmitPos $LN16@JitEmitPos: - 000c9 48 c7 85 98 02 + 000b2 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv86[rbp], 0 $LN17@JitEmitPos: - 000d4 48 8b 85 98 02 + 000bd 48 8b 85 98 02 00 00 mov rax, QWORD PTR tv86[rbp] - 000db 48 89 85 c8 01 + 000c4 48 89 85 c8 01 00 00 mov QWORD PTR $T4[rbp], rax - 000e2 48 8b 85 c8 01 + 000cb 48 8b 85 c8 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000e9 48 89 45 68 mov QWORD PTR Block$[rbp], rax + 000d2 48 89 45 68 mov QWORD PTR Block$[rbp], rax ; 376 : if (!Block) - 000ed 48 83 7d 68 00 cmp QWORD PTR Block$[rbp], 0 - 000f2 75 07 jne SHORT $LN4@JitEmitPos + 000d6 48 83 7d 68 00 cmp QWORD PTR Block$[rbp], 0 + 000db 75 07 jne SHORT $LN4@JitEmitPos ; 377 : return NULL; - 000f4 33 c0 xor eax, eax - 000f6 e9 ed 03 00 00 jmp $LN1@JitEmitPos + 000dd 33 c0 xor eax, eax + 000df e9 ed 03 00 00 jmp $LN1@JitEmitPos $LN4@JitEmitPos: ; 378 : ; 379 : if (SaveFlags && !JitEmitPushfqInst(Block)) - 000fb 83 bd d8 02 00 + 000e4 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 00102 74 57 je SHORT $LN5@JitEmitPos - 00104 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00108 e8 00 00 00 00 call ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPushfqInst - 0010d 85 c0 test eax, eax - 0010f 75 4a jne SHORT $LN5@JitEmitPos + 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); - 00111 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00115 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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; - 0011a 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0011e 48 89 85 08 02 + 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 - 00125 48 83 bd 08 02 + 0010e 48 83 bd 08 02 00 00 00 cmp QWORD PTR $T6[rbp], 0 - 0012d 74 1a je SHORT $LN18@JitEmitPos - 0012f ba 01 00 00 00 mov edx, 1 - 00134 48 8b 8d 08 02 + 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] - 0013b e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00140 48 89 85 98 02 + 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 - 00147 eb 0b jmp SHORT $LN19@JitEmitPos + 00130 eb 0b jmp SHORT $LN19@JitEmitPos $LN18@JitEmitPos: - 00149 48 c7 85 98 02 + 00132 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv128[rbp], 0 $LN19@JitEmitPos: ; 383 : return NULL; - 00154 33 c0 xor eax, eax - 00156 e9 8d 03 00 00 jmp $LN1@JitEmitPos + 0013d 33 c0 xor eax, eax + 0013f e9 8d 03 00 00 jmp $LN1@JitEmitPos $LN5@JitEmitPos: ; 384 : } ; 385 : ; 386 : ULONG Count = FourByte; - 0015b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0015e 89 85 84 00 00 + 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) - 00164 83 bd 84 00 00 + 0014d 83 bd 84 00 00 00 00 cmp DWORD PTR Count$[rbp], 0 - 0016b 0f 84 11 01 00 + 00154 0f 84 11 01 00 00 je $LN3@JitEmitPos ; 388 : { ; 389 : INT32 RipDelta = Link->RawDataSize - ((FourByte - Count) * 4); - 00171 8b 85 84 00 00 + 0015a 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00177 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 0017a 2b c8 sub ecx, eax - 0017c 8b c1 mov eax, ecx - 0017e c1 e0 02 shl eax, 2 - 00181 48 8b 8d c0 02 + 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] - 00188 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 0018b 2b c8 sub ecx, eax - 0018d 8b c1 mov eax, ecx - 0018f 89 85 a4 00 00 + 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) - 00195 83 bd d8 02 00 + 0017e 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 0019c 74 0e je SHORT $LN6@JitEmitPos + 00185 74 0e je SHORT $LN6@JitEmitPos ; 391 : RipDelta += 1; - 0019e 8b 85 a4 00 00 + 00187 8b 85 a4 00 00 00 mov eax, DWORD PTR RipDelta$1[rbp] - 001a4 ff c0 inc eax - 001a6 89 85 a4 00 00 + 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; - 001ac 8b 85 84 00 00 + 00195 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 001b2 ff c8 dec eax - 001b4 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 001b7 2b c8 sub ecx, eax - 001b9 8b c1 mov eax, ecx - 001bb 6b c0 0a imul eax, eax, 10 - 001be 8b 8d a4 00 00 + 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] - 001c4 03 c8 add ecx, eax - 001c6 8b c1 mov eax, ecx - 001c8 89 85 a4 00 00 + 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); - 001ce 6b 85 a4 00 00 + 001b7 6b 85 a4 00 00 00 ff imul eax, DWORD PTR RipDelta$1[rbp], -1 - 001d5 89 85 a4 00 00 + 001be 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 394 : RipDelta += Delta; - 001db 8b 85 e0 02 00 + 001c4 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 001e1 8b 8d a4 00 00 + 001ca 8b 8d a4 00 00 00 mov ecx, DWORD PTR RipDelta$1[rbp] - 001e7 03 c8 add ecx, eax - 001e9 8b c1 mov eax, ecx - 001eb 89 85 a4 00 00 + 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])) - 001f1 8b 85 84 00 00 + 001da 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 001f7 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 001fa 2b c8 sub ecx, eax - 001fc 8b c1 mov eax, ecx - 001fe 8b c0 mov eax, eax - 00200 48 8b 8d c8 02 + 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] - 00207 44 8b 0c 81 mov r9d, DWORD PTR [rcx+rax*4] - 0020b 44 8b 85 a4 00 + 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] - 00212 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 00216 8b 8d d0 02 00 + 001fb 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 001ff 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 0021c e8 00 00 00 00 call ?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperD - 00221 85 c0 test eax, eax - 00223 75 4a jne SHORT $LN7@JitEmitPos + 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); - 00225 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00229 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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; - 0022e 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00232 48 89 85 28 02 + 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 - 00239 48 83 bd 28 02 + 00222 48 83 bd 28 02 00 00 00 cmp QWORD PTR $T7[rbp], 0 - 00241 74 1a je SHORT $LN20@JitEmitPos - 00243 ba 01 00 00 00 mov edx, 1 - 00248 48 8b 8d 28 02 + 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] - 0024f e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00254 48 89 85 98 02 + 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 - 0025b eb 0b jmp SHORT $LN21@JitEmitPos + 00244 eb 0b jmp SHORT $LN21@JitEmitPos $LN20@JitEmitPos: - 0025d 48 c7 85 98 02 + 00246 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv158[rbp], 0 $LN21@JitEmitPos: ; 399 : return NULL; - 00268 33 c0 xor eax, eax - 0026a e9 79 02 00 00 jmp $LN1@JitEmitPos + 00251 33 c0 xor eax, eax + 00253 e9 79 02 00 00 jmp $LN1@JitEmitPos $LN7@JitEmitPos: ; 400 : } ; 401 : --Count; - 0026f 8b 85 84 00 00 + 00258 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00275 ff c8 dec eax - 00277 89 85 84 00 00 + 0025e ff c8 dec eax + 00260 89 85 84 00 00 00 mov DWORD PTR Count$[rbp], eax ; 402 : } - 0027d e9 e2 fe ff ff jmp $LN2@JitEmitPos + 00266 e9 e2 fe ff ff jmp $LN2@JitEmitPos $LN3@JitEmitPos: ; 403 : ; 404 : if (TwoByte) - 00282 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 - 00286 0f 84 ef 00 00 + 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); - 0028c 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0028f c1 e0 02 shl eax, 2 - 00292 48 8b 8d c0 02 + 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] - 00299 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 0029c 2b c8 sub ecx, eax - 0029e 8b c1 mov eax, ecx - 002a0 89 85 c4 00 00 + 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) - 002a6 83 bd d8 02 00 + 0028f 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 002ad 74 0e je SHORT $LN9@JitEmitPos + 00296 74 0e je SHORT $LN9@JitEmitPos ; 408 : RipDelta += 1; - 002af 8b 85 c4 00 00 + 00298 8b 85 c4 00 00 00 mov eax, DWORD PTR RipDelta$2[rbp] - 002b5 ff c0 inc eax - 002b7 89 85 c4 00 00 + 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); - 002bd 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 - 002c1 8b 8d c4 00 00 + 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] - 002c7 03 c8 add ecx, eax - 002c9 8b c1 mov eax, ecx - 002cb 89 85 c4 00 00 + 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; - 002d1 8b 85 c4 00 00 + 002ba 8b 85 c4 00 00 00 mov eax, DWORD PTR RipDelta$2[rbp] - 002d7 83 c0 09 add eax, 9 - 002da 89 85 c4 00 00 + 002c0 83 c0 09 add eax, 9 + 002c3 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 411 : RipDelta *= (-1); - 002e0 6b 85 c4 00 00 + 002c9 6b 85 c4 00 00 00 ff imul eax, DWORD PTR RipDelta$2[rbp], -1 - 002e7 89 85 c4 00 00 + 002d0 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 412 : RipDelta += Delta; - 002ed 8b 85 e0 02 00 + 002d6 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 002f3 8b 8d c4 00 00 + 002dc 8b 8d c4 00 00 00 mov ecx, DWORD PTR RipDelta$2[rbp] - 002f9 03 c8 add ecx, eax - 002fb 8b c1 mov eax, ecx - 002fd 89 85 c4 00 00 + 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])) - 00303 b8 04 00 00 00 mov eax, 4 - 00308 48 6b c0 03 imul rax, rax, 3 - 0030c 48 8b 8d c8 02 + 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] - 00313 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] - 00317 44 8b 85 c4 00 + 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] - 0031e 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 00322 8b 8d d0 02 00 + 00307 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 0030b 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 00328 e8 00 00 00 00 call ?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperW - 0032d 85 c0 test eax, eax - 0032f 75 4a jne SHORT $LN8@JitEmitPos + 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); - 00331 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00335 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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; - 0033a 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0033e 48 89 85 48 02 + 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 - 00345 48 83 bd 48 02 + 0032e 48 83 bd 48 02 00 00 00 cmp QWORD PTR $T8[rbp], 0 - 0034d 74 1a je SHORT $LN22@JitEmitPos - 0034f ba 01 00 00 00 mov edx, 1 - 00354 48 8b 8d 48 02 + 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] - 0035b e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00360 48 89 85 98 02 + 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 - 00367 eb 0b jmp SHORT $LN23@JitEmitPos + 00350 eb 0b jmp SHORT $LN23@JitEmitPos $LN22@JitEmitPos: - 00369 48 c7 85 98 02 + 00352 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv185[rbp], 0 $LN23@JitEmitPos: ; 417 : return NULL; - 00374 33 c0 xor eax, eax - 00376 e9 6d 01 00 00 jmp $LN1@JitEmitPos + 0035d 33 c0 xor eax, eax + 0035f e9 6d 01 00 00 jmp $LN1@JitEmitPos $LN8@JitEmitPos: ; 418 : } @@ -2566,132 +2463,132 @@ $LN8@JitEmitPos: ; 420 : ; 421 : if (OneByte) - 0037b 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 - 0037f 0f 84 02 01 00 + 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); - 00385 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00388 c1 e0 02 shl eax, 2 - 0038b 48 8b 8d c0 02 + 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] - 00392 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00395 2b c8 sub ecx, eax - 00397 8b c1 mov eax, ecx - 00399 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 0039c d1 e1 shl ecx, 1 - 0039e 2b c1 sub eax, ecx - 003a0 89 85 e4 00 00 + 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) - 003a6 83 bd d8 02 00 + 0038f 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 003ad 74 0e je SHORT $LN12@JitEmitPos + 00396 74 0e je SHORT $LN12@JitEmitPos ; 425 : RipDelta += 1; - 003af 8b 85 e4 00 00 + 00398 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 003b5 ff c0 inc eax - 003b7 89 85 e4 00 00 + 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); - 003bd 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 - 003c1 8b 8d e4 00 00 + 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] - 003c7 03 c8 add ecx, eax - 003c9 8b c1 mov eax, ecx - 003cb 89 85 e4 00 00 + 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; - 003d1 8b 85 e4 00 00 + 003ba 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 003d7 83 c0 09 add eax, 9 - 003da 89 85 e4 00 00 + 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; - 003e0 8b 85 e4 00 00 + 003c9 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 003e6 83 c0 07 add eax, 7 - 003e9 89 85 e4 00 00 + 003cf 83 c0 07 add eax, 7 + 003d2 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 429 : RipDelta *= (-1); - 003ef 6b 85 e4 00 00 + 003d8 6b 85 e4 00 00 00 ff imul eax, DWORD PTR RipDelta$3[rbp], -1 - 003f6 89 85 e4 00 00 + 003df 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 430 : RipDelta += Delta; - 003fc 8b 85 e0 02 00 + 003e5 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 00402 8b 8d e4 00 00 + 003eb 8b 8d e4 00 00 00 mov ecx, DWORD PTR RipDelta$3[rbp] - 00408 03 c8 add ecx, eax - 0040a 8b c1 mov eax, ecx - 0040c 89 85 e4 00 00 + 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])) - 00412 b8 04 00 00 00 mov eax, 4 - 00417 48 6b c0 04 imul rax, rax, 4 - 0041b 48 8b 8d c8 02 + 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] - 00422 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] - 00426 44 8b 85 e4 00 + 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] - 0042d 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 00431 8b 8d d0 02 00 + 00416 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 0041a 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 00437 e8 00 00 00 00 call ?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperB - 0043c 85 c0 test eax, eax - 0043e 75 47 jne SHORT $LN11@JitEmitPos + 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); - 00440 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00444 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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; - 00449 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0044d 48 89 85 68 02 + 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 - 00454 48 83 bd 68 02 + 0043d 48 83 bd 68 02 00 00 00 cmp QWORD PTR $T9[rbp], 0 - 0045c 74 1a je SHORT $LN24@JitEmitPos - 0045e ba 01 00 00 00 mov edx, 1 - 00463 48 8b 8d 68 02 + 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] - 0046a e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 0046f 48 89 85 98 02 + 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 - 00476 eb 0b jmp SHORT $LN25@JitEmitPos + 0045f eb 0b jmp SHORT $LN25@JitEmitPos $LN24@JitEmitPos: - 00478 48 c7 85 98 02 + 00461 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv214[rbp], 0 $LN25@JitEmitPos: ; 435 : return NULL; - 00483 33 c0 xor eax, eax - 00485 eb 61 jmp SHORT $LN1@JitEmitPos + 0046c 33 c0 xor eax, eax + 0046e eb 61 jmp SHORT $LN1@JitEmitPos $LN11@JitEmitPos: ; 436 : } @@ -2699,61 +2596,61 @@ $LN11@JitEmitPos: ; 438 : ; 439 : if (SaveFlags && !JitEmitPopfqInst(Block)) - 00487 83 bd d8 02 00 + 00470 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 0048e 74 54 je SHORT $LN14@JitEmitPos - 00490 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00494 e8 00 00 00 00 call ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPopfqInst - 00499 85 c0 test eax, eax - 0049b 75 47 jne SHORT $LN14@JitEmitPos + 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); - 0049d 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 004a1 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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; - 004a6 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 004aa 48 89 85 88 02 + 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 - 004b1 48 83 bd 88 02 + 0049a 48 83 bd 88 02 00 00 00 cmp QWORD PTR $T10[rbp], 0 - 004b9 74 1a je SHORT $LN26@JitEmitPos - 004bb ba 01 00 00 00 mov edx, 1 - 004c0 48 8b 8d 88 02 + 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] - 004c7 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 004cc 48 89 85 98 02 + 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 - 004d3 eb 0b jmp SHORT $LN27@JitEmitPos + 004bc eb 0b jmp SHORT $LN27@JitEmitPos $LN26@JitEmitPos: - 004d5 48 c7 85 98 02 + 004be 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv224[rbp], 0 $LN27@JitEmitPos: ; 443 : return NULL; - 004e0 33 c0 xor eax, eax - 004e2 eb 04 jmp SHORT $LN1@JitEmitPos + 004c9 33 c0 xor eax, eax + 004cb eb 04 jmp SHORT $LN1@JitEmitPos $LN14@JitEmitPos: ; 444 : } ; 445 : ; 446 : return Block; - 004e4 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 004cd 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] $LN1@JitEmitPos: ; 447 : } - 004e8 48 8d a5 a8 02 + 004d1 48 8d a5 a8 02 00 00 lea rsp, QWORD PTR [rbp+680] - 004ef 5f pop rdi - 004f0 5d pop rbp - 004f1 c3 ret 0 + 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 @@ -2848,7 +2745,7 @@ Delta$ = 736 ?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:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; 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 @@ -2891,370 +2788,364 @@ $LN29: 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 8b fc mov rdi, rsp - 00025 b9 b2 00 00 00 mov ecx, 178 ; 000000b2H - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 e8 - 02 00 00 mov rcx, QWORD PTR [rsp+744] - 00039 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; - 00045 33 d2 xor edx, edx - 00047 48 8b 85 c0 02 + 0002e 33 d2 xor edx, edx + 00030 48 8b 85 c0 02 00 00 mov rax, QWORD PTR Link$[rbp] - 0004e 8b 40 28 mov eax, DWORD PTR [rax+40] - 00051 b9 04 00 00 00 mov ecx, 4 - 00056 f7 f1 div ecx - 00058 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 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; - 0005b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0005e c1 e0 02 shl eax, 2 - 00061 48 8b 8d c0 02 + 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] - 00068 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 0006b 2b c8 sub ecx, eax - 0006d 8b c1 mov eax, ecx - 0006f 33 d2 xor edx, edx - 00071 b9 02 00 00 00 mov ecx, 2 - 00076 f7 f1 div ecx - 00078 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + 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)); - 0007b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0007e c1 e0 02 shl eax, 2 - 00081 48 8b 8d c0 02 + 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] - 00088 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 0008b 2b c8 sub ecx, eax - 0008d 8b c1 mov eax, ecx - 0008f 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00092 03 c9 add ecx, ecx - 00094 2b c1 sub eax, ecx - 00096 89 45 44 mov DWORD PTR OneByte$[rbp], eax + 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; - 00099 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0009e e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 000a3 48 89 85 e8 01 + 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 - 000aa 48 83 bd e8 01 + 00093 48 83 bd e8 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 000b2 74 15 je SHORT $LN16@JitEmitPre - 000b4 48 8b 8d e8 01 + 0009b 74 15 je SHORT $LN16@JitEmitPre + 0009d 48 8b 8d e8 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000bb e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 000c0 48 89 85 98 02 + 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 - 000c7 eb 0b jmp SHORT $LN17@JitEmitPre + 000b0 eb 0b jmp SHORT $LN17@JitEmitPre $LN16@JitEmitPre: - 000c9 48 c7 85 98 02 + 000b2 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv86[rbp], 0 $LN17@JitEmitPre: - 000d4 48 8b 85 98 02 + 000bd 48 8b 85 98 02 00 00 mov rax, QWORD PTR tv86[rbp] - 000db 48 89 85 c8 01 + 000c4 48 89 85 c8 01 00 00 mov QWORD PTR $T4[rbp], rax - 000e2 48 8b 85 c8 01 + 000cb 48 8b 85 c8 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000e9 48 89 45 68 mov QWORD PTR Block$[rbp], rax + 000d2 48 89 45 68 mov QWORD PTR Block$[rbp], rax ; 302 : if (!Block) - 000ed 48 83 7d 68 00 cmp QWORD PTR Block$[rbp], 0 - 000f2 75 07 jne SHORT $LN4@JitEmitPre + 000d6 48 83 7d 68 00 cmp QWORD PTR Block$[rbp], 0 + 000db 75 07 jne SHORT $LN4@JitEmitPre ; 303 : return NULL; - 000f4 33 c0 xor eax, eax - 000f6 e9 67 03 00 00 jmp $LN1@JitEmitPre + 000dd 33 c0 xor eax, eax + 000df e9 67 03 00 00 jmp $LN1@JitEmitPre $LN4@JitEmitPre: ; 304 : ; 305 : if (SaveFlags && !JitEmitPushfqInst(Block)) - 000fb 83 bd d8 02 00 + 000e4 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 00102 74 57 je SHORT $LN5@JitEmitPre - 00104 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00108 e8 00 00 00 00 call ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPushfqInst - 0010d 85 c0 test eax, eax - 0010f 75 4a jne SHORT $LN5@JitEmitPre + 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); - 00111 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00115 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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; - 0011a 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0011e 48 89 85 08 02 + 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 - 00125 48 83 bd 08 02 + 0010e 48 83 bd 08 02 00 00 00 cmp QWORD PTR $T6[rbp], 0 - 0012d 74 1a je SHORT $LN18@JitEmitPre - 0012f ba 01 00 00 00 mov edx, 1 - 00134 48 8b 8d 08 02 + 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] - 0013b e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00140 48 89 85 98 02 + 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 - 00147 eb 0b jmp SHORT $LN19@JitEmitPre + 00130 eb 0b jmp SHORT $LN19@JitEmitPre $LN18@JitEmitPre: - 00149 48 c7 85 98 02 + 00132 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv128[rbp], 0 $LN19@JitEmitPre: ; 309 : return NULL; - 00154 33 c0 xor eax, eax - 00156 e9 07 03 00 00 jmp $LN1@JitEmitPre + 0013d 33 c0 xor eax, eax + 0013f e9 07 03 00 00 jmp $LN1@JitEmitPre $LN5@JitEmitPre: ; 310 : } ; 311 : ; 312 : ULONG Count = FourByte; - 0015b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0015e 89 85 84 00 00 + 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) - 00164 83 bd 84 00 00 + 0014d 83 bd 84 00 00 00 00 cmp DWORD PTR Count$[rbp], 0 - 0016b 0f 84 f7 00 00 + 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)); - 00171 8b 85 84 00 00 + 0015a 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00177 ff c8 dec eax - 00179 6b c0 0a imul eax, eax, 10 - 0017c 6b 4d 24 09 imul ecx, DWORD PTR TwoByte$[rbp], 9 - 00180 03 c1 add eax, ecx - 00182 6b 4d 44 07 imul ecx, DWORD PTR OneByte$[rbp], 7 - 00186 03 c1 add eax, ecx - 00188 89 85 a4 00 00 + 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) - 0018e 83 bd d8 02 00 + 00177 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 00195 74 0e je SHORT $LN6@JitEmitPre + 0017e 74 0e je SHORT $LN6@JitEmitPre ; 317 : RipDelta += 1; - 00197 8b 85 a4 00 00 + 00180 8b 85 a4 00 00 00 mov eax, DWORD PTR RipDelta$1[rbp] - 0019d ff c0 inc eax - 0019f 89 85 a4 00 00 + 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); - 001a5 8b 85 84 00 00 + 0018e 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 001ab 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 001ae 2b c8 sub ecx, eax - 001b0 8b c1 mov eax, ecx - 001b2 8b 8d a4 00 00 + 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] - 001b8 8d 04 81 lea eax, DWORD PTR [rcx+rax*4] - 001bb 89 85 a4 00 00 + 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; - 001c1 8b 85 e0 02 00 + 001aa 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 001c7 8b 8d a4 00 00 + 001b0 8b 8d a4 00 00 00 mov ecx, DWORD PTR RipDelta$1[rbp] - 001cd 03 c8 add ecx, eax - 001cf 8b c1 mov eax, ecx - 001d1 89 85 a4 00 00 + 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])) - 001d7 8b 85 84 00 00 + 001c0 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 001dd 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 001e0 2b c8 sub ecx, eax - 001e2 8b c1 mov eax, ecx - 001e4 8b c0 mov eax, eax - 001e6 48 8b 8d c8 02 + 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] - 001ed 44 8b 0c 81 mov r9d, DWORD PTR [rcx+rax*4] - 001f1 44 8b 85 a4 00 + 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] - 001f8 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 001fc 8b 8d d0 02 00 + 001e1 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 001e5 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 00202 e8 00 00 00 00 call ?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperD - 00207 85 c0 test eax, eax - 00209 75 4a jne SHORT $LN7@JitEmitPre + 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); - 0020b 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0020f e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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; - 00214 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00218 48 89 85 28 02 + 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 - 0021f 48 83 bd 28 02 + 00208 48 83 bd 28 02 00 00 00 cmp QWORD PTR $T7[rbp], 0 - 00227 74 1a je SHORT $LN20@JitEmitPre - 00229 ba 01 00 00 00 mov edx, 1 - 0022e 48 8b 8d 28 02 + 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] - 00235 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 0023a 48 89 85 98 02 + 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 - 00241 eb 0b jmp SHORT $LN21@JitEmitPre + 0022a eb 0b jmp SHORT $LN21@JitEmitPre $LN20@JitEmitPre: - 00243 48 c7 85 98 02 + 0022c 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv158[rbp], 0 $LN21@JitEmitPre: ; 324 : return NULL; - 0024e 33 c0 xor eax, eax - 00250 e9 0d 02 00 00 jmp $LN1@JitEmitPre + 00237 33 c0 xor eax, eax + 00239 e9 0d 02 00 00 jmp $LN1@JitEmitPre $LN7@JitEmitPre: ; 325 : } ; 326 : --Count; - 00255 8b 85 84 00 00 + 0023e 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 0025b ff c8 dec eax - 0025d 89 85 84 00 00 + 00244 ff c8 dec eax + 00246 89 85 84 00 00 00 mov DWORD PTR Count$[rbp], eax ; 327 : } - 00263 e9 fc fe ff ff jmp $LN2@JitEmitPre + 0024c e9 fc fe ff ff jmp $LN2@JitEmitPre $LN3@JitEmitPre: ; 328 : ; 329 : if (TwoByte) - 00268 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 - 0026c 0f 84 c1 00 00 + 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); - 00272 6b 45 44 07 imul eax, DWORD PTR OneByte$[rbp], 7 - 00276 89 85 c4 00 00 + 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) - 0027c 83 bd d8 02 00 + 00265 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 00283 74 0e je SHORT $LN9@JitEmitPre + 0026c 74 0e je SHORT $LN9@JitEmitPre ; 333 : RipDelta += 1; - 00285 8b 85 c4 00 00 + 0026e 8b 85 c4 00 00 00 mov eax, DWORD PTR RipDelta$2[rbp] - 0028b ff c0 inc eax - 0028d 89 85 c4 00 00 + 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); - 00293 8b 85 c4 00 00 + 0027c 8b 85 c4 00 00 00 mov eax, DWORD PTR RipDelta$2[rbp] - 00299 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 0029c 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] - 0029f 89 85 c4 00 00 + 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; - 002a5 8b 85 e0 02 00 + 0028e 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 002ab 8b 8d c4 00 00 + 00294 8b 8d c4 00 00 00 mov ecx, DWORD PTR RipDelta$2[rbp] - 002b1 03 c8 add ecx, eax - 002b3 8b c1 mov eax, ecx - 002b5 89 85 c4 00 00 + 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])) - 002bb b8 04 00 00 00 mov eax, 4 - 002c0 48 6b c0 03 imul rax, rax, 3 - 002c4 48 8b 8d c8 02 + 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] - 002cb 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] - 002cf 44 8b 85 c4 00 + 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] - 002d6 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 002da 8b 8d d0 02 00 + 002bf 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 002c3 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 002e0 e8 00 00 00 00 call ?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperW - 002e5 85 c0 test eax, eax - 002e7 75 4a jne SHORT $LN8@JitEmitPre + 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); - 002e9 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 002ed e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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; - 002f2 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 002f6 48 89 85 48 02 + 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 - 002fd 48 83 bd 48 02 + 002e6 48 83 bd 48 02 00 00 00 cmp QWORD PTR $T8[rbp], 0 - 00305 74 1a je SHORT $LN22@JitEmitPre - 00307 ba 01 00 00 00 mov edx, 1 - 0030c 48 8b 8d 48 02 + 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] - 00313 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00318 48 89 85 98 02 + 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 - 0031f eb 0b jmp SHORT $LN23@JitEmitPre + 00308 eb 0b jmp SHORT $LN23@JitEmitPre $LN22@JitEmitPre: - 00321 48 c7 85 98 02 + 0030a 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv181[rbp], 0 $LN23@JitEmitPre: ; 340 : return NULL; - 0032c 33 c0 xor eax, eax - 0032e e9 2f 01 00 00 jmp $LN1@JitEmitPre + 00315 33 c0 xor eax, eax + 00317 e9 2f 01 00 00 jmp $LN1@JitEmitPre $LN8@JitEmitPre: ; 341 : } @@ -3262,100 +3153,100 @@ $LN8@JitEmitPre: ; 343 : ; 344 : if (OneByte) - 00333 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 - 00337 0f 84 c4 00 00 + 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; - 0033d c7 85 e4 00 00 + 00326 c7 85 e4 00 00 00 00 00 00 00 mov DWORD PTR RipDelta$3[rbp], 0 ; 347 : if (SaveFlags) - 00347 83 bd d8 02 00 + 00330 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 0034e 74 0e je SHORT $LN12@JitEmitPre + 00337 74 0e je SHORT $LN12@JitEmitPre ; 348 : RipDelta += 1; - 00350 8b 85 e4 00 00 + 00339 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 00356 ff c0 inc eax - 00358 89 85 e4 00 00 + 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); - 0035e 8b 85 e4 00 00 + 00347 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 00364 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 00367 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] - 0036a 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 0036d 8d 04 48 lea eax, DWORD PTR [rax+rcx*2] - 00370 89 85 e4 00 00 + 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; - 00376 8b 85 e0 02 00 + 0035f 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 0037c 8b 8d e4 00 00 + 00365 8b 8d e4 00 00 00 mov ecx, DWORD PTR RipDelta$3[rbp] - 00382 03 c8 add ecx, eax - 00384 8b c1 mov eax, ecx - 00386 89 85 e4 00 00 + 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])) - 0038c b8 04 00 00 00 mov eax, 4 - 00391 48 6b c0 04 imul rax, rax, 4 - 00395 48 8b 8d c8 02 + 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] - 0039c 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] - 003a0 44 8b 85 e4 00 + 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] - 003a7 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 003ab 8b 8d d0 02 00 + 00390 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 00394 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 003b1 e8 00 00 00 00 call ?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperB - 003b6 85 c0 test eax, eax - 003b8 75 47 jne SHORT $LN11@JitEmitPre + 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); - 003ba 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 003be e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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; - 003c3 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 003c7 48 89 85 68 02 + 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 - 003ce 48 83 bd 68 02 + 003b7 48 83 bd 68 02 00 00 00 cmp QWORD PTR $T9[rbp], 0 - 003d6 74 1a je SHORT $LN24@JitEmitPre - 003d8 ba 01 00 00 00 mov edx, 1 - 003dd 48 8b 8d 68 02 + 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] - 003e4 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 003e9 48 89 85 98 02 + 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 - 003f0 eb 0b jmp SHORT $LN25@JitEmitPre + 003d9 eb 0b jmp SHORT $LN25@JitEmitPre $LN24@JitEmitPre: - 003f2 48 c7 85 98 02 + 003db 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv204[rbp], 0 $LN25@JitEmitPre: ; 355 : return NULL; - 003fd 33 c0 xor eax, eax - 003ff eb 61 jmp SHORT $LN1@JitEmitPre + 003e6 33 c0 xor eax, eax + 003e8 eb 61 jmp SHORT $LN1@JitEmitPre $LN11@JitEmitPre: ; 356 : } @@ -3363,61 +3254,61 @@ $LN11@JitEmitPre: ; 358 : ; 359 : if (SaveFlags && !JitEmitPopfqInst(Block)) - 00401 83 bd d8 02 00 + 003ea 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 00408 74 54 je SHORT $LN14@JitEmitPre - 0040a 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0040e e8 00 00 00 00 call ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPopfqInst - 00413 85 c0 test eax, eax - 00415 75 47 jne SHORT $LN14@JitEmitPre + 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); - 00417 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0041b e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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; - 00420 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00424 48 89 85 88 02 + 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 - 0042b 48 83 bd 88 02 + 00414 48 83 bd 88 02 00 00 00 cmp QWORD PTR $T10[rbp], 0 - 00433 74 1a je SHORT $LN26@JitEmitPre - 00435 ba 01 00 00 00 mov edx, 1 - 0043a 48 8b 8d 88 02 + 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] - 00441 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00446 48 89 85 98 02 + 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 - 0044d eb 0b jmp SHORT $LN27@JitEmitPre + 00436 eb 0b jmp SHORT $LN27@JitEmitPre $LN26@JitEmitPre: - 0044f 48 c7 85 98 02 + 00438 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv214[rbp], 0 $LN27@JitEmitPre: ; 363 : return NULL; - 0045a 33 c0 xor eax, eax - 0045c eb 04 jmp SHORT $LN1@JitEmitPre + 00443 33 c0 xor eax, eax + 00445 eb 04 jmp SHORT $LN1@JitEmitPre $LN14@JitEmitPre: ; 364 : } ; 365 : ; 366 : return Block; - 0045e 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00447 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] $LN1@JitEmitPre: ; 367 : } - 00462 48 8d a5 a8 02 + 0044b 48 8d a5 a8 02 00 00 lea rsp, QWORD PTR [rbp+680] - 00469 5f pop rdi - 0046a 5d pop rbp - 0046b c3 ret 0 + 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 @@ -3512,7 +3403,7 @@ Delta$ = 736 ?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:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z _TEXT SEGMENT FourByte$ = 4 @@ -3554,362 +3445,362 @@ $LN25: 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 8b fc mov rdi, rsp - 0001a b9 fe 00 00 00 mov ecx, 254 ; 000000feH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 18 + 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] - 0002e 48 8b 05 00 00 + 00030 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00035 48 33 c5 xor rax, rbp - 00038 48 89 85 c0 03 + 00037 48 33 c5 xor rax, rbp + 0003a 48 89 85 c0 03 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00046 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; - 0004b 33 d2 xor edx, edx - 0004d 48 8b 85 f0 03 + 0004d 33 d2 xor edx, edx + 0004f 48 8b 85 f0 03 00 00 mov rax, QWORD PTR Link$[rbp] - 00054 8b 40 28 mov eax, DWORD PTR [rax+40] - 00057 b9 04 00 00 00 mov ecx, 4 - 0005c f7 f1 div ecx - 0005e 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 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; - 00061 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00064 c1 e0 02 shl eax, 2 - 00067 48 8b 8d f0 03 + 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] - 0006e 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00071 2b c8 sub ecx, eax - 00073 8b c1 mov eax, ecx - 00075 33 d2 xor edx, edx - 00077 b9 02 00 00 00 mov ecx, 2 - 0007c f7 f1 div ecx - 0007e 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + 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)); - 00081 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00084 c1 e0 02 shl eax, 2 - 00087 48 8b 8d f0 03 + 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] - 0008e 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00091 2b c8 sub ecx, eax - 00093 8b c1 mov eax, ecx - 00095 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00098 d1 e1 shl ecx, 1 - 0009a 2b c1 sub eax, ecx - 0009c 89 45 44 mov DWORD PTR OneByte$[rbp], eax + 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; - 0009f b9 30 00 00 00 mov ecx, 48 ; 00000030H - 000a4 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 000a9 48 89 85 e8 02 + 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 - 000b0 48 83 bd e8 02 + 000b2 48 83 bd e8 02 00 00 00 cmp QWORD PTR $T8[rbp], 0 - 000b8 74 15 je SHORT $LN11@JitEmitPos - 000ba 48 8b 8d e8 02 + 000ba 74 15 je SHORT $LN11@JitEmitPos + 000bc 48 8b 8d e8 02 00 00 mov rcx, QWORD PTR $T8[rbp] - 000c1 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 000c6 48 89 85 b8 03 + 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 - 000cd eb 0b jmp SHORT $LN12@JitEmitPos + 000cf eb 0b jmp SHORT $LN12@JitEmitPos $LN11@JitEmitPos: - 000cf 48 c7 85 b8 03 + 000d1 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv86[rbp], 0 $LN12@JitEmitPos: - 000da 48 8b 85 b8 03 + 000dc 48 8b 85 b8 03 00 00 mov rax, QWORD PTR tv86[rbp] - 000e1 48 89 85 c8 02 + 000e3 48 89 85 c8 02 00 00 mov QWORD PTR $T7[rbp], rax - 000e8 48 8b 85 c8 02 + 000ea 48 8b 85 c8 02 00 00 mov rax, QWORD PTR $T7[rbp] - 000ef 48 89 45 68 mov QWORD PTR Block$[rbp], rax + 000f1 48 89 45 68 mov QWORD PTR Block$[rbp], rax ; 205 : ; 206 : Block->Start = Block->End = new NATIVE_CODE_LINK; - 000f3 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 000f8 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 000fd 48 89 85 28 03 + 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 - 00104 48 83 bd 28 03 + 00106 48 83 bd 28 03 00 00 00 cmp QWORD PTR $T10[rbp], 0 - 0010c 74 15 je SHORT $LN13@JitEmitPos - 0010e 48 8b 8d 28 03 + 0010e 74 15 je SHORT $LN13@JitEmitPos + 00110 48 8b 8d 28 03 00 00 mov rcx, QWORD PTR $T10[rbp] - 00115 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 0011a 48 89 85 b8 03 + 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 - 00121 eb 0b jmp SHORT $LN14@JitEmitPos + 00123 eb 0b jmp SHORT $LN14@JitEmitPos $LN13@JitEmitPos: - 00123 48 c7 85 b8 03 + 00125 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv131[rbp], 0 $LN14@JitEmitPos: - 0012e 48 8b 85 b8 03 + 00130 48 8b 85 b8 03 00 00 mov rax, QWORD PTR tv131[rbp] - 00135 48 89 85 08 03 + 00137 48 89 85 08 03 00 00 mov QWORD PTR $T9[rbp], rax - 0013c 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00140 48 8b 8d 08 03 + 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] - 00147 48 89 48 08 mov QWORD PTR [rax+8], rcx - 0014b 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0014f 48 8b 8d 08 03 + 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] - 00156 48 89 08 mov QWORD PTR [rax], rcx + 00158 48 89 08 mov QWORD PTR [rax], rcx ; 207 : ULONG ZeroValue = 0; - 00159 c7 85 84 00 00 + 0015b c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR ZeroValue$[rbp], 0 ; 208 : ULONG Count = FourByte; - 00163 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00166 89 85 a4 00 00 + 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) - 0016c 83 bd a4 00 00 + 0016e 83 bd a4 00 00 00 00 cmp DWORD PTR Count$[rbp], 0 - 00173 0f 84 ec 00 00 + 00175 0f 84 ec 00 00 00 je $LN3@JitEmitPos ; 210 : { ; 211 : INT32 RipDelta = Link->RawDataSize - ((FourByte - Count) * 4); - 00179 8b 85 a4 00 00 + 0017b 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 0017f 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 00182 2b c8 sub ecx, eax - 00184 8b c1 mov eax, ecx - 00186 c1 e0 02 shl eax, 2 - 00189 48 8b 8d f0 03 + 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] - 00190 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00193 2b c8 sub ecx, eax - 00195 8b c1 mov eax, ecx - 00197 89 85 c4 00 00 + 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; - 0019d 8b 85 a4 00 00 + 0019f 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 001a3 ff c8 dec eax - 001a5 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 001a8 2b c8 sub ecx, eax - 001aa 8b c1 mov eax, ecx - 001ac 6b c0 0a imul eax, eax, 10 - 001af 8b 8d c4 00 00 + 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] - 001b5 03 c8 add ecx, eax - 001b7 8b c1 mov eax, ecx - 001b9 89 85 c4 00 00 + 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); - 001bf 6b 85 c4 00 00 + 001c1 6b 85 c4 00 00 00 ff imul eax, DWORD PTR RipDelta$4[rbp], -1 - 001c6 89 85 c4 00 00 + 001c8 89 85 c4 00 00 00 mov DWORD PTR RipDelta$4[rbp], eax ; 214 : RipDelta += Delta; - 001cc 8b 85 f8 03 00 + 001ce 8b 85 f8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 001d2 8b 8d c4 00 00 + 001d4 8b 8d c4 00 00 00 mov ecx, DWORD PTR RipDelta$4[rbp] - 001d8 03 c8 add ecx, eax - 001da 8b c1 mov eax, ecx - 001dc 89 85 c4 00 00 + 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(); - 001e2 ff 15 00 00 00 + 001e4 ff 15 00 00 00 00 call QWORD PTR __imp_rand - 001e8 89 85 84 00 00 + 001ea 89 85 84 00 00 00 mov DWORD PTR ZeroValue$[rbp], eax ; 216 : if (!JitEmitRipRelativeMovD(Block, RipDelta, (PUCHAR)&ZeroValue)) - 001ee 4c 8d 85 84 00 + 001f0 4c 8d 85 84 00 00 00 lea r8, QWORD PTR ZeroValue$[rbp] - 001f5 8b 95 c4 00 00 + 001f7 8b 95 c4 00 00 00 mov edx, DWORD PTR RipDelta$4[rbp] - 001fb 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 001ff e8 00 00 00 00 call ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovD - 00204 85 c0 test eax, eax - 00206 75 4a jne SHORT $LN4@JitEmitPos + 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); - 00208 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0020c e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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; - 00211 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00215 48 89 85 48 03 + 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 - 0021c 48 83 bd 48 03 + 0021e 48 83 bd 48 03 00 00 00 cmp QWORD PTR $T11[rbp], 0 - 00224 74 1a je SHORT $LN15@JitEmitPos - 00226 ba 01 00 00 00 mov edx, 1 - 0022b 48 8b 8d 48 03 + 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] - 00232 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00237 48 89 85 b8 03 + 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 - 0023e eb 0b jmp SHORT $LN16@JitEmitPos + 00240 eb 0b jmp SHORT $LN16@JitEmitPos $LN15@JitEmitPos: - 00240 48 c7 85 b8 03 + 00242 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv153[rbp], 0 $LN16@JitEmitPos: ; 220 : return NULL; - 0024b 33 c0 xor eax, eax - 0024d e9 58 02 00 00 jmp $LN1@JitEmitPos + 0024d 33 c0 xor eax, eax + 0024f e9 58 02 00 00 jmp $LN1@JitEmitPos $LN4@JitEmitPos: ; 221 : } ; 222 : --Count; - 00252 8b 85 a4 00 00 + 00254 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00258 ff c8 dec eax - 0025a 89 85 a4 00 00 + 0025a ff c8 dec eax + 0025c 89 85 a4 00 00 00 mov DWORD PTR Count$[rbp], eax ; 223 : } - 00260 e9 07 ff ff ff jmp $LN2@JitEmitPos + 00262 e9 07 ff ff ff jmp $LN2@JitEmitPos $LN3@JitEmitPos: ; 224 : ; 225 : if (TwoByte) - 00265 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 - 00269 0f 84 d0 00 00 + 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); - 0026f 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00272 c1 e0 02 shl eax, 2 - 00275 48 8b 8d f0 03 + 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] - 0027c 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 0027f 2b c8 sub ecx, eax - 00281 8b c1 mov eax, ecx - 00283 89 85 e4 00 00 + 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); - 00289 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 - 0028d 8b 8d e4 00 00 + 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] - 00293 03 c8 add ecx, eax - 00295 8b c1 mov eax, ecx - 00297 89 85 e4 00 00 + 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; - 0029d 8b 85 e4 00 00 + 0029f 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$5[rbp] - 002a3 83 c0 09 add eax, 9 - 002a6 89 85 e4 00 00 + 002a5 83 c0 09 add eax, 9 + 002a8 89 85 e4 00 00 00 mov DWORD PTR RipDelta$5[rbp], eax ; 230 : RipDelta *= (-1); - 002ac 6b 85 e4 00 00 + 002ae 6b 85 e4 00 00 00 ff imul eax, DWORD PTR RipDelta$5[rbp], -1 - 002b3 89 85 e4 00 00 + 002b5 89 85 e4 00 00 00 mov DWORD PTR RipDelta$5[rbp], eax ; 231 : RipDelta += Delta; - 002b9 8b 85 f8 03 00 + 002bb 8b 85 f8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 002bf 8b 8d e4 00 00 + 002c1 8b 8d e4 00 00 00 mov ecx, DWORD PTR RipDelta$5[rbp] - 002c5 03 c8 add ecx, eax - 002c7 8b c1 mov eax, ecx - 002c9 89 85 e4 00 00 + 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(); - 002cf ff 15 00 00 00 + 002d1 ff 15 00 00 00 00 call QWORD PTR __imp_rand - 002d5 89 85 84 00 00 + 002d7 89 85 84 00 00 00 mov DWORD PTR ZeroValue$[rbp], eax ; 233 : if (!JitEmitRipRelativeMovW(Block, RipDelta, (PUCHAR)&ZeroValue)) - 002db 4c 8d 85 84 00 + 002dd 4c 8d 85 84 00 00 00 lea r8, QWORD PTR ZeroValue$[rbp] - 002e2 8b 95 e4 00 00 + 002e4 8b 95 e4 00 00 00 mov edx, DWORD PTR RipDelta$5[rbp] - 002e8 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 002ec e8 00 00 00 00 call ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovW - 002f1 85 c0 test eax, eax - 002f3 75 4a jne SHORT $LN5@JitEmitPos + 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); - 002f5 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 002f9 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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; - 002fe 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00302 48 89 85 68 03 + 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 - 00309 48 83 bd 68 03 + 0030b 48 83 bd 68 03 00 00 00 cmp QWORD PTR $T12[rbp], 0 - 00311 74 1a je SHORT $LN17@JitEmitPos - 00313 ba 01 00 00 00 mov edx, 1 - 00318 48 8b 8d 68 03 + 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] - 0031f e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00324 48 89 85 b8 03 + 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 - 0032b eb 0b jmp SHORT $LN18@JitEmitPos + 0032d eb 0b jmp SHORT $LN18@JitEmitPos $LN17@JitEmitPos: - 0032d 48 c7 85 b8 03 + 0032f 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv175[rbp], 0 $LN18@JitEmitPos: ; 237 : return NULL; - 00338 33 c0 xor eax, eax - 0033a e9 6b 01 00 00 jmp $LN1@JitEmitPos + 0033a 33 c0 xor eax, eax + 0033c e9 6b 01 00 00 jmp $LN1@JitEmitPos $LN5@JitEmitPos: ; 238 : } @@ -3917,121 +3808,121 @@ $LN5@JitEmitPos: ; 240 : ; 241 : if (OneByte) - 0033f 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 - 00343 0f 84 e8 00 00 + 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); - 00349 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0034c c1 e0 02 shl eax, 2 - 0034f 48 8b 8d f0 03 + 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] - 00356 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00359 2b c8 sub ecx, eax - 0035b 8b c1 mov eax, ecx - 0035d 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00360 d1 e1 shl ecx, 1 - 00362 2b c1 sub eax, ecx - 00364 89 85 04 01 00 + 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); - 0036a 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 - 0036e 8b 8d 04 01 00 + 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] - 00374 03 c8 add ecx, eax - 00376 8b c1 mov eax, ecx - 00378 89 85 04 01 00 + 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); - 0037e 6b 45 24 09 imul eax, DWORD PTR TwoByte$[rbp], 9 - 00382 8b 8d 04 01 00 + 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] - 00388 03 c8 add ecx, eax - 0038a 8b c1 mov eax, ecx - 0038c 89 85 04 01 00 + 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; - 00392 8b 85 04 01 00 + 00394 8b 85 04 01 00 00 mov eax, DWORD PTR RipDelta$6[rbp] - 00398 83 c0 07 add eax, 7 - 0039b 89 85 04 01 00 + 0039a 83 c0 07 add eax, 7 + 0039d 89 85 04 01 00 00 mov DWORD PTR RipDelta$6[rbp], eax ; 247 : RipDelta *= (-1); - 003a1 6b 85 04 01 00 + 003a3 6b 85 04 01 00 00 ff imul eax, DWORD PTR RipDelta$6[rbp], -1 - 003a8 89 85 04 01 00 + 003aa 89 85 04 01 00 00 mov DWORD PTR RipDelta$6[rbp], eax ; 248 : RipDelta += Delta; - 003ae 8b 85 f8 03 00 + 003b0 8b 85 f8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 003b4 8b 8d 04 01 00 + 003b6 8b 8d 04 01 00 00 mov ecx, DWORD PTR RipDelta$6[rbp] - 003ba 03 c8 add ecx, eax - 003bc 8b c1 mov eax, ecx - 003be 89 85 04 01 00 + 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(); - 003c4 ff 15 00 00 00 + 003c6 ff 15 00 00 00 00 call QWORD PTR __imp_rand - 003ca 89 85 84 00 00 + 003cc 89 85 84 00 00 00 mov DWORD PTR ZeroValue$[rbp], eax ; 250 : if (!JitEmitRipRelativeMovB(Block, RipDelta, (PUCHAR)&ZeroValue)) - 003d0 4c 8d 85 84 00 + 003d2 4c 8d 85 84 00 00 00 lea r8, QWORD PTR ZeroValue$[rbp] - 003d7 8b 95 04 01 00 + 003d9 8b 95 04 01 00 00 mov edx, DWORD PTR RipDelta$6[rbp] - 003dd 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 003e1 e8 00 00 00 00 call ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovB - 003e6 85 c0 test eax, eax - 003e8 75 47 jne SHORT $LN7@JitEmitPos + 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); - 003ea 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 003ee e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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; - 003f3 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 003f7 48 89 85 88 03 + 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 - 003fe 48 83 bd 88 03 + 00400 48 83 bd 88 03 00 00 00 cmp QWORD PTR $T13[rbp], 0 - 00406 74 1a je SHORT $LN19@JitEmitPos - 00408 ba 01 00 00 00 mov edx, 1 - 0040d 48 8b 8d 88 03 + 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] - 00414 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00419 48 89 85 b8 03 + 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 - 00420 eb 0b jmp SHORT $LN20@JitEmitPos + 00422 eb 0b jmp SHORT $LN20@JitEmitPos $LN19@JitEmitPos: - 00422 48 c7 85 b8 03 + 00424 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv200[rbp], 0 $LN20@JitEmitPos: ; 254 : return NULL; - 0042d 33 c0 xor eax, eax - 0042f eb 79 jmp SHORT $LN1@JitEmitPos + 0042f 33 c0 xor eax, eax + 00431 eb 79 jmp SHORT $LN1@JitEmitPos $LN7@JitEmitPos: ; 255 : } @@ -4039,51 +3930,51 @@ $LN7@JitEmitPos: ; 257 : ; 258 : PNATIVE_CODE_LINK StartLink = Block->Start; - 00431 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00435 48 8b 00 mov rax, QWORD PTR [rax] - 00438 48 89 85 28 01 + 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; - 0043f 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00443 48 8b 00 mov rax, QWORD PTR [rax] - 00446 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0044a 48 8b 00 mov rax, QWORD PTR [rax] - 0044d 48 89 01 mov QWORD PTR [rcx], rax + 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) - 00450 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00454 48 83 38 00 cmp QWORD PTR [rax], 0 - 00458 74 0f je SHORT $LN9@JitEmitPos + 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; - 0045a 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0045e 48 8b 00 mov rax, QWORD PTR [rax] - 00461 48 c7 40 08 00 + 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; - 00469 48 8b 85 28 01 + 0046b 48 8b 85 28 01 00 00 mov rax, QWORD PTR StartLink$[rbp] - 00470 48 89 85 a8 03 + 00472 48 89 85 a8 03 00 00 mov QWORD PTR $T14[rbp], rax - 00477 48 83 bd a8 03 + 00479 48 83 bd a8 03 00 00 00 cmp QWORD PTR $T14[rbp], 0 - 0047f 74 1a je SHORT $LN21@JitEmitPos - 00481 ba 01 00 00 00 mov edx, 1 - 00486 48 8b 8d a8 03 + 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] - 0048d e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 00492 48 89 85 b8 03 + 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 - 00499 eb 0b jmp SHORT $LN22@JitEmitPos + 0049b eb 0b jmp SHORT $LN22@JitEmitPos $LN21@JitEmitPos: - 0049b 48 c7 85 b8 03 + 0049d 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv213[rbp], 0 $LN22@JitEmitPos: @@ -4091,26 +3982,26 @@ $LN22@JitEmitPos: ; 263 : ; 264 : return Block; - 004a6 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 004a8 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] $LN1@JitEmitPos: ; 265 : } - 004aa 48 8b f8 mov rdi, rax - 004ad 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 004b1 48 8d 15 00 00 + 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 - 004b8 e8 00 00 00 00 call _RTC_CheckStackVars - 004bd 48 8b c7 mov rax, rdi - 004c0 48 8b 8d c0 03 + 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] - 004c7 48 33 cd xor rcx, rbp - 004ca e8 00 00 00 00 call __security_check_cookie - 004cf 48 8d a5 d8 03 + 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] - 004d6 5f pop rdi - 004d7 5d pop rbp - 004d8 c3 ret 0 + 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 @@ -4300,7 +4191,7 @@ Delta$ = 1016 ?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:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z _TEXT SEGMENT FourByte$ = 4 @@ -4341,331 +4232,325 @@ $LN25: 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 8b fc mov rdi, rsp - 0001a b9 fa 00 00 00 mov ecx, 250 ; 000000faH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 04 00 00 mov rcx, QWORD PTR [rsp+1032] - 0002e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; - 0003a 33 d2 xor edx, edx - 0003c 48 8b 85 e0 03 + 00023 33 d2 xor edx, edx + 00025 48 8b 85 e0 03 00 00 mov rax, QWORD PTR Link$[rbp] - 00043 8b 40 28 mov eax, DWORD PTR [rax+40] - 00046 b9 04 00 00 00 mov ecx, 4 - 0004b f7 f1 div ecx - 0004d 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 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; - 00050 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00053 c1 e0 02 shl eax, 2 - 00056 48 8b 8d e0 03 + 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] - 0005d 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00060 2b c8 sub ecx, eax - 00062 8b c1 mov eax, ecx - 00064 33 d2 xor edx, edx - 00066 b9 02 00 00 00 mov ecx, 2 - 0006b f7 f1 div ecx - 0006d 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + 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)); - 00070 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00073 c1 e0 02 shl eax, 2 - 00076 48 8b 8d e0 03 + 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] - 0007d 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00080 2b c8 sub ecx, eax - 00082 8b c1 mov eax, ecx - 00084 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00087 03 c9 add ecx, ecx - 00089 2b c1 sub eax, ecx - 0008b 89 45 44 mov DWORD PTR OneByte$[rbp], eax + 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; - 0008e b9 30 00 00 00 mov ecx, 48 ; 00000030H - 00093 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00098 48 89 85 e8 02 + 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 - 0009f 48 83 bd e8 02 + 00088 48 83 bd e8 02 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 000a7 74 15 je SHORT $LN11@JitEmitPre - 000a9 48 8b 8d e8 02 + 00090 74 15 je SHORT $LN11@JitEmitPre + 00092 48 8b 8d e8 02 00 00 mov rcx, QWORD PTR $T5[rbp] - 000b0 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 000b5 48 89 85 b8 03 + 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 - 000bc eb 0b jmp SHORT $LN12@JitEmitPre + 000a5 eb 0b jmp SHORT $LN12@JitEmitPre $LN11@JitEmitPre: - 000be 48 c7 85 b8 03 + 000a7 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv86[rbp], 0 $LN12@JitEmitPre: - 000c9 48 8b 85 b8 03 + 000b2 48 8b 85 b8 03 00 00 mov rax, QWORD PTR tv86[rbp] - 000d0 48 89 85 c8 02 + 000b9 48 89 85 c8 02 00 00 mov QWORD PTR $T4[rbp], rax - 000d7 48 8b 85 c8 02 + 000c0 48 8b 85 c8 02 00 00 mov rax, QWORD PTR $T4[rbp] - 000de 48 89 45 68 mov QWORD PTR Block$[rbp], rax + 000c7 48 89 45 68 mov QWORD PTR Block$[rbp], rax ; 140 : ; 141 : Block->Start = Block->End = new NATIVE_CODE_LINK; - 000e2 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 000e7 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 000ec 48 89 85 28 03 + 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 - 000f3 48 83 bd 28 03 + 000dc 48 83 bd 28 03 00 00 00 cmp QWORD PTR $T7[rbp], 0 - 000fb 74 15 je SHORT $LN13@JitEmitPre - 000fd 48 8b 8d 28 03 + 000e4 74 15 je SHORT $LN13@JitEmitPre + 000e6 48 8b 8d 28 03 00 00 mov rcx, QWORD PTR $T7[rbp] - 00104 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00109 48 89 85 b8 03 + 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 - 00110 eb 0b jmp SHORT $LN14@JitEmitPre + 000f9 eb 0b jmp SHORT $LN14@JitEmitPre $LN13@JitEmitPre: - 00112 48 c7 85 b8 03 + 000fb 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv131[rbp], 0 $LN14@JitEmitPre: - 0011d 48 8b 85 b8 03 + 00106 48 8b 85 b8 03 00 00 mov rax, QWORD PTR tv131[rbp] - 00124 48 89 85 08 03 + 0010d 48 89 85 08 03 00 00 mov QWORD PTR $T6[rbp], rax - 0012b 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0012f 48 8b 8d 08 03 + 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] - 00136 48 89 48 08 mov QWORD PTR [rax+8], rcx - 0013a 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0013e 48 8b 8d 08 03 + 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] - 00145 48 89 08 mov QWORD PTR [rax], rcx + 0012e 48 89 08 mov QWORD PTR [rax], rcx ; 142 : PUCHAR DataOffset = Link->RawData; - 00148 48 8b 85 e0 03 + 00131 48 8b 85 e0 03 00 00 mov rax, QWORD PTR Link$[rbp] - 0014f 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 00153 48 89 85 88 00 + 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; - 0015a 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0015d 89 85 a4 00 00 + 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) - 00163 83 bd a4 00 00 + 0014c 83 bd a4 00 00 00 00 cmp DWORD PTR Count$[rbp], 0 - 0016a 0f 84 d8 00 00 + 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)); - 00170 8b 85 a4 00 00 + 00159 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00176 ff c8 dec eax - 00178 6b c0 0a imul eax, eax, 10 - 0017b 6b 4d 24 09 imul ecx, DWORD PTR TwoByte$[rbp], 9 - 0017f 03 c1 add eax, ecx - 00181 6b 4d 44 07 imul ecx, DWORD PTR OneByte$[rbp], 7 - 00185 03 c1 add eax, ecx - 00187 89 85 c4 00 00 + 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); - 0018d 8b 85 a4 00 00 + 00176 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00193 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 00196 2b c8 sub ecx, eax - 00198 8b c1 mov eax, ecx - 0019a 8b 8d c4 00 00 + 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] - 001a0 8d 04 81 lea eax, DWORD PTR [rcx+rax*4] - 001a3 89 85 c4 00 00 + 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; - 001a9 8b 85 e8 03 00 + 00192 8b 85 e8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 001af 8b 8d c4 00 00 + 00198 8b 8d c4 00 00 00 mov ecx, DWORD PTR RipDelta$1[rbp] - 001b5 03 c8 add ecx, eax - 001b7 8b c1 mov eax, ecx - 001b9 89 85 c4 00 00 + 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)) - 001bf 4c 8b 85 88 00 + 001a8 4c 8b 85 88 00 00 00 mov r8, QWORD PTR DataOffset$[rbp] - 001c6 8b 95 c4 00 00 + 001af 8b 95 c4 00 00 00 mov edx, DWORD PTR RipDelta$1[rbp] - 001cc 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 001d0 e8 00 00 00 00 call ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovD - 001d5 85 c0 test eax, eax - 001d7 75 4a jne SHORT $LN4@JitEmitPre + 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); - 001d9 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 001dd e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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; - 001e2 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 001e6 48 89 85 48 03 + 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 - 001ed 48 83 bd 48 03 + 001d6 48 83 bd 48 03 00 00 00 cmp QWORD PTR $T8[rbp], 0 - 001f5 74 1a je SHORT $LN15@JitEmitPre - 001f7 ba 01 00 00 00 mov edx, 1 - 001fc 48 8b 8d 48 03 + 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] - 00203 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00208 48 89 85 b8 03 + 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 - 0020f eb 0b jmp SHORT $LN16@JitEmitPre + 001f8 eb 0b jmp SHORT $LN16@JitEmitPre $LN15@JitEmitPre: - 00211 48 c7 85 b8 03 + 001fa 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv153[rbp], 0 $LN16@JitEmitPre: ; 156 : return NULL; - 0021c 33 c0 xor eax, eax - 0021e e9 f3 01 00 00 jmp $LN1@JitEmitPre + 00205 33 c0 xor eax, eax + 00207 e9 f3 01 00 00 jmp $LN1@JitEmitPre $LN4@JitEmitPre: ; 157 : } ; 158 : DataOffset += 4; - 00223 48 8b 85 88 00 + 0020c 48 8b 85 88 00 00 00 mov rax, QWORD PTR DataOffset$[rbp] - 0022a 48 83 c0 04 add rax, 4 - 0022e 48 89 85 88 00 + 00213 48 83 c0 04 add rax, 4 + 00217 48 89 85 88 00 00 00 mov QWORD PTR DataOffset$[rbp], rax ; 159 : --Count; - 00235 8b 85 a4 00 00 + 0021e 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 0023b ff c8 dec eax - 0023d 89 85 a4 00 00 + 00224 ff c8 dec eax + 00226 89 85 a4 00 00 00 mov DWORD PTR Count$[rbp], eax ; 160 : } - 00243 e9 1b ff ff ff jmp $LN2@JitEmitPre + 0022c e9 1b ff ff ff jmp $LN2@JitEmitPre $LN3@JitEmitPre: ; 161 : ; 162 : if (TwoByte) - 00248 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 - 0024c 0f 84 a8 00 00 + 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); - 00252 6b 45 44 07 imul eax, DWORD PTR OneByte$[rbp], 7 - 00256 89 85 e4 00 00 + 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); - 0025c 8b 85 e4 00 00 + 00245 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$2[rbp] - 00262 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 00265 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] - 00268 89 85 e4 00 00 + 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; - 0026e 8b 85 e8 03 00 + 00257 8b 85 e8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 00274 8b 8d e4 00 00 + 0025d 8b 8d e4 00 00 00 mov ecx, DWORD PTR RipDelta$2[rbp] - 0027a 03 c8 add ecx, eax - 0027c 8b c1 mov eax, ecx - 0027e 89 85 e4 00 00 + 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)) - 00284 4c 8b 85 88 00 + 0026d 4c 8b 85 88 00 00 00 mov r8, QWORD PTR DataOffset$[rbp] - 0028b 8b 95 e4 00 00 + 00274 8b 95 e4 00 00 00 mov edx, DWORD PTR RipDelta$2[rbp] - 00291 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00295 e8 00 00 00 00 call ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovW - 0029a 85 c0 test eax, eax - 0029c 75 4a jne SHORT $LN6@JitEmitPre + 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); - 0029e 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 002a2 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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; - 002a7 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 002ab 48 89 85 68 03 + 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 - 002b2 48 83 bd 68 03 + 0029b 48 83 bd 68 03 00 00 00 cmp QWORD PTR $T9[rbp], 0 - 002ba 74 1a je SHORT $LN17@JitEmitPre - 002bc ba 01 00 00 00 mov edx, 1 - 002c1 48 8b 8d 68 03 + 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] - 002c8 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 002cd 48 89 85 b8 03 + 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 - 002d4 eb 0b jmp SHORT $LN18@JitEmitPre + 002bd eb 0b jmp SHORT $LN18@JitEmitPre $LN17@JitEmitPre: - 002d6 48 c7 85 b8 03 + 002bf 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv171[rbp], 0 $LN18@JitEmitPre: ; 171 : return NULL; - 002e1 33 c0 xor eax, eax - 002e3 e9 2e 01 00 00 jmp $LN1@JitEmitPre + 002ca 33 c0 xor eax, eax + 002cc e9 2e 01 00 00 jmp $LN1@JitEmitPre $LN6@JitEmitPre: ; 172 : } ; 173 : DataOffset += 2; - 002e8 48 8b 85 88 00 + 002d1 48 8b 85 88 00 00 00 mov rax, QWORD PTR DataOffset$[rbp] - 002ef 48 83 c0 02 add rax, 2 - 002f3 48 89 85 88 00 + 002d8 48 83 c0 02 add rax, 2 + 002dc 48 89 85 88 00 00 00 mov QWORD PTR DataOffset$[rbp], rax $LN5@JitEmitPre: @@ -4673,80 +4558,80 @@ $LN5@JitEmitPre: ; 175 : ; 176 : if (OneByte) - 002fa 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 - 002fe 0f 84 99 00 00 + 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; - 00304 c7 85 04 01 00 + 002ed c7 85 04 01 00 00 00 00 00 00 mov DWORD PTR RipDelta$3[rbp], 0 ; 179 : RipDelta += (FourByte * 4) + (TwoByte * 2); - 0030e 8b 85 04 01 00 + 002f7 8b 85 04 01 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 00314 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 00317 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] - 0031a 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 0031d 8d 04 48 lea eax, DWORD PTR [rax+rcx*2] - 00320 89 85 04 01 00 + 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; - 00326 8b 85 e8 03 00 + 0030f 8b 85 e8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 0032c 8b 8d 04 01 00 + 00315 8b 8d 04 01 00 00 mov ecx, DWORD PTR RipDelta$3[rbp] - 00332 03 c8 add ecx, eax - 00334 8b c1 mov eax, ecx - 00336 89 85 04 01 00 + 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)) - 0033c 4c 8b 85 88 00 + 00325 4c 8b 85 88 00 00 00 mov r8, QWORD PTR DataOffset$[rbp] - 00343 8b 95 04 01 00 + 0032c 8b 95 04 01 00 00 mov edx, DWORD PTR RipDelta$3[rbp] - 00349 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0034d e8 00 00 00 00 call ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovB - 00352 85 c0 test eax, eax - 00354 75 47 jne SHORT $LN7@JitEmitPre + 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); - 00356 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0035a e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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; - 0035f 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00363 48 89 85 88 03 + 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 - 0036a 48 83 bd 88 03 + 00353 48 83 bd 88 03 00 00 00 cmp QWORD PTR $T10[rbp], 0 - 00372 74 1a je SHORT $LN19@JitEmitPre - 00374 ba 01 00 00 00 mov edx, 1 - 00379 48 8b 8d 88 03 + 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] - 00380 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00385 48 89 85 b8 03 + 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 - 0038c eb 0b jmp SHORT $LN20@JitEmitPre + 00375 eb 0b jmp SHORT $LN20@JitEmitPre $LN19@JitEmitPre: - 0038e 48 c7 85 b8 03 + 00377 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv189[rbp], 0 $LN20@JitEmitPre: ; 185 : return NULL; - 00399 33 c0 xor eax, eax - 0039b eb 79 jmp SHORT $LN1@JitEmitPre + 00382 33 c0 xor eax, eax + 00384 eb 79 jmp SHORT $LN1@JitEmitPre $LN7@JitEmitPre: ; 186 : } @@ -4754,51 +4639,51 @@ $LN7@JitEmitPre: ; 188 : ; 189 : PNATIVE_CODE_LINK StartLink = Block->Start; - 0039d 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 003a1 48 8b 00 mov rax, QWORD PTR [rax] - 003a4 48 89 85 28 01 + 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; - 003ab 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 003af 48 8b 00 mov rax, QWORD PTR [rax] - 003b2 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 003b6 48 8b 00 mov rax, QWORD PTR [rax] - 003b9 48 89 01 mov QWORD PTR [rcx], rax + 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) - 003bc 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 003c0 48 83 38 00 cmp QWORD PTR [rax], 0 - 003c4 74 0f je SHORT $LN9@JitEmitPre + 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; - 003c6 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 003ca 48 8b 00 mov rax, QWORD PTR [rax] - 003cd 48 c7 40 08 00 + 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; - 003d5 48 8b 85 28 01 + 003be 48 8b 85 28 01 00 00 mov rax, QWORD PTR StartLink$[rbp] - 003dc 48 89 85 a8 03 + 003c5 48 89 85 a8 03 00 00 mov QWORD PTR $T11[rbp], rax - 003e3 48 83 bd a8 03 + 003cc 48 83 bd a8 03 00 00 00 cmp QWORD PTR $T11[rbp], 0 - 003eb 74 1a je SHORT $LN21@JitEmitPre - 003ed ba 01 00 00 00 mov edx, 1 - 003f2 48 8b 8d a8 03 + 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] - 003f9 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 003fe 48 89 85 b8 03 + 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 - 00405 eb 0b jmp SHORT $LN22@JitEmitPre + 003ee eb 0b jmp SHORT $LN22@JitEmitPre $LN21@JitEmitPre: - 00407 48 c7 85 b8 03 + 003f0 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv202[rbp], 0 $LN22@JitEmitPre: @@ -4806,16 +4691,16 @@ $LN22@JitEmitPre: ; 194 : ; 195 : return Block; - 00412 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 003fb 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] $LN1@JitEmitPre: ; 196 : } - 00416 48 8d a5 c8 03 + 003ff 48 8d a5 c8 03 00 00 lea rsp, QWORD PTR [rbp+968] - 0041d 5f pop rdi - 0041e 5d pop rbp - 0041f c3 ret 0 + 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 @@ -5001,7 +4886,7 @@ Delta$ = 1000 ?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:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z _TEXT SEGMENT Link$ = 224 @@ -5018,28 +4903,22 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 : } - 0003b 48 8d a5 c8 00 + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00042 5f pop rdi - 00043 5d pop rbp - 00044 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z _TEXT SEGMENT Link$ = 224 @@ -5056,28 +4935,22 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 : } - 0003b 48 8d a5 c8 00 + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00042 5f pop rdi - 00043 5d pop rbp - 00044 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z _TEXT SEGMENT FourByte$ = 4 @@ -5098,163 +4971,157 @@ $LN7: 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 8b fc mov rdi, rsp - 0001b b9 5a 00 00 00 mov ecx, 90 ; 0000005aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 88 - 01 00 00 mov rcx, QWORD PTR [rsp+392] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; - 0003b 33 d2 xor edx, edx - 0003d 48 8b 85 60 01 + 00024 33 d2 xor edx, edx + 00026 48 8b 85 60 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00044 8b 40 28 mov eax, DWORD PTR [rax+40] - 00047 b9 04 00 00 00 mov ecx, 4 - 0004c f7 f1 div ecx - 0004e 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 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; - 00051 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00054 c1 e0 02 shl eax, 2 - 00057 48 8b 8d 60 01 + 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] - 0005e 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00061 2b c8 sub ecx, eax - 00063 8b c1 mov eax, ecx - 00065 33 d2 xor edx, edx - 00067 b9 02 00 00 00 mov ecx, 2 - 0006c f7 f1 div ecx - 0006e 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + 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)); - 00071 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00074 c1 e0 02 shl eax, 2 - 00077 48 8b 8d 60 01 + 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] - 0007e 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00081 2b c8 sub ecx, eax - 00083 8b c1 mov eax, ecx - 00085 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00088 d1 e1 shl ecx, 1 - 0008a 2b c1 sub eax, ecx - 0008c 89 45 44 mov DWORD PTR OneByte$[rbp], eax + 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; - 0008f 48 8b 85 60 01 + 00078 48 8b 85 60 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00096 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 0009a 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax + 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) - 0009e 83 7d 04 00 cmp DWORD PTR FourByte$[rbp], 0 - 000a2 74 3a je SHORT $LN3@JitMutateI + 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]; - 000a4 b8 02 00 00 00 mov eax, 2 - 000a9 2b 45 04 sub eax, DWORD PTR FourByte$[rbp] - 000ac 8b c0 mov eax, eax - 000ae 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 000b2 48 8b 95 68 01 + 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] - 000b9 8b 04 82 mov eax, DWORD PTR [rdx+rax*4] - 000bc 8b 09 mov ecx, DWORD PTR [rcx] - 000be 33 c8 xor ecx, eax - 000c0 8b c1 mov eax, ecx - 000c2 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 000c6 89 01 mov DWORD PTR [rcx], eax + 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; - 000c8 48 8b 45 68 mov rax, QWORD PTR Buffer$[rbp] - 000cc 48 83 c0 04 add rax, 4 - 000d0 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax + 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--; - 000d4 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 000d7 ff c8 dec eax - 000d9 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 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 : } - 000dc eb c0 jmp SHORT $LN2@JitMutateI + 000c5 eb c0 jmp SHORT $LN2@JitMutateI $LN3@JitMutateI: ; 111 : ; 112 : if (TwoByte) - 000de 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 - 000e2 74 32 je SHORT $LN4@JitMutateI + 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]; - 000e4 b8 04 00 00 00 mov eax, 4 - 000e9 48 6b c0 03 imul rax, rax, 3 - 000ed 48 8b 8d 68 01 + 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] - 000f4 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] - 000f8 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 000fc 0f b7 09 movzx ecx, WORD PTR [rcx] - 000ff 33 c8 xor ecx, eax - 00101 8b c1 mov eax, ecx - 00103 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 00107 66 89 01 mov WORD PTR [rcx], ax + 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; - 0010a 48 8b 45 68 mov rax, QWORD PTR Buffer$[rbp] - 0010e 48 83 c0 02 add rax, 2 - 00112 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax + 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) - 00116 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 - 0011a 74 25 je SHORT $LN5@JitMutateI + 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]; - 0011c b8 04 00 00 00 mov eax, 4 - 00121 48 6b c0 03 imul rax, rax, 3 - 00125 48 8b 8d 68 01 + 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] - 0012c 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00130 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 00134 0f b6 09 movzx ecx, BYTE PTR [rcx] - 00137 33 c8 xor ecx, eax - 00139 8b c1 mov eax, ecx - 0013b 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 0013f 88 01 mov BYTE PTR [rcx], al + 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 : } - 00141 48 8d a5 48 01 + 0012a 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] - 00148 5f pop rdi - 00149 5d pop rbp - 0014a c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z _TEXT SEGMENT Ledger$ = 4 @@ -5275,176 +5142,176 @@ $LN9: 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 8b fc mov rdi, rsp - 00016 b9 62 00 00 00 mov ecx, 98 ; 00000062H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 a8 + 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] - 0002a 48 8b 05 00 00 + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 58 01 + 00033 48 33 c5 xor rax, rbp + 00036 48 89 85 58 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; - 00047 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 0004a 83 c8 40 or eax, 64 ; 00000040H - 0004d 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 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; - 00050 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 00053 0f ba e8 07 bts eax, 7 - 00057 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 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; - 0005a 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 0005d 83 c8 04 or eax, 4 - 00060 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 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; - 00063 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 00066 0f ba e8 0b bts eax, 11 - 0006a 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 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; - 0006d 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 00070 83 c8 01 or eax, 1 - 00073 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 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; - 00076 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 00079 83 c8 10 or eax, 16 - 0007c 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 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) - 0007f 48 8b 85 80 01 + 00081 48 8b 85 80 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00086 48 8b 00 mov rax, QWORD PTR [rax] - 00089 48 89 45 28 mov QWORD PTR T$4[rbp], rax - 0008d eb 0b jmp SHORT $LN4@JitAreFlag + 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: - 0008f 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 00093 48 8b 00 mov rax, QWORD PTR [rax] - 00096 48 89 45 28 mov QWORD PTR T$4[rbp], rax + 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: - 0009a 48 83 7d 28 00 cmp QWORD PTR T$4[rbp], 0 - 0009f 74 77 je SHORT $LN3@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) - 000a1 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 000a5 8b 40 18 mov eax, DWORD PTR [rax+24] - 000a8 83 e0 01 and eax, 1 - 000ab 85 c0 test eax, eax - 000ad 74 02 je SHORT $LN5@JitAreFlag + 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; - 000af eb de jmp SHORT $LN2@JitAreFlag + 000b1 eb de jmp SHORT $LN2@JitAreFlag $LN5@JitAreFlag: ; 82 : ; 83 : CONST XED_SIMPLE_FLAG* SimpleFlags = XedDecodedInstGetRflagsInfo(&T->XedInstruction); - 000b1 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 000b5 48 83 c0 30 add rax, 48 ; 00000030H - 000b9 48 8b c8 mov rcx, rax - 000bc e8 00 00 00 00 call xed_decoded_inst_get_rflags_info - 000c1 48 89 45 48 mov QWORD PTR SimpleFlags$5[rbp], rax + 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); - 000c5 48 8b 4d 48 mov rcx, QWORD PTR SimpleFlags$5[rbp] - 000c9 e8 00 00 00 00 call xed_simple_flag_get_read_flag_set - 000ce 48 89 45 68 mov QWORD PTR FlagsRead$6[rbp], rax + 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); - 000d2 48 8b 4d 48 mov rcx, QWORD PTR SimpleFlags$5[rbp] - 000d6 e8 00 00 00 00 call xed_simple_flag_get_written_flag_set - 000db 48 89 85 88 00 + 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)) - 000e2 8b 55 04 mov edx, DWORD PTR Ledger$[rbp] - 000e5 48 8b 4d 68 mov rcx, QWORD PTR FlagsRead$6[rbp] - 000e9 e8 00 00 00 00 call ?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z ; JitCheckFlagCollisions - 000ee 85 c0 test eax, eax - 000f0 74 04 je SHORT $LN6@JitAreFlag + 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; - 000f2 33 c0 xor eax, eax - 000f4 eb 24 jmp SHORT $LN1@JitAreFlag + 000f4 33 c0 xor eax, eax + 000f6 eb 24 jmp SHORT $LN1@JitAreFlag $LN6@JitAreFlag: ; 89 : ; 90 : JitUpdateConFlagsLedger(FlagsWritten, &Ledger); - 000f6 48 8d 55 04 lea rdx, QWORD PTR Ledger$[rbp] - 000fa 48 8b 8d 88 00 + 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] - 00101 e8 00 00 00 00 call ?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z ; JitUpdateConFlagsLedger + 00103 e8 00 00 00 00 call ?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z ; JitUpdateConFlagsLedger ; 91 : ; 92 : if (Ledger.flat == 0) - 00106 83 7d 04 00 cmp DWORD PTR Ledger$[rbp], 0 - 0010a 75 07 jne SHORT $LN7@JitAreFlag + 00108 83 7d 04 00 cmp DWORD PTR Ledger$[rbp], 0 + 0010c 75 07 jne SHORT $LN7@JitAreFlag ; 93 : return TRUE; - 0010c b8 01 00 00 00 mov eax, 1 - 00111 eb 07 jmp SHORT $LN1@JitAreFlag + 0010e b8 01 00 00 00 mov eax, 1 + 00113 eb 07 jmp SHORT $LN1@JitAreFlag $LN7@JitAreFlag: ; 94 : } - 00113 e9 77 ff ff ff jmp $LN2@JitAreFlag + 00115 e9 77 ff ff ff jmp $LN2@JitAreFlag $LN3@JitAreFlag: ; 95 : return FALSE; - 00118 33 c0 xor eax, eax + 0011a 33 c0 xor eax, eax $LN1@JitAreFlag: ; 96 : } - 0011a 48 8b f8 mov rdi, rax - 0011d 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00121 48 8d 15 00 00 + 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 - 00128 e8 00 00 00 00 call _RTC_CheckStackVars - 0012d 48 8b c7 mov rax, rdi - 00130 48 8b 8d 58 01 + 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] - 00137 48 33 cd xor rcx, rbp - 0013a e8 00 00 00 00 call __security_check_cookie - 0013f 48 8d a5 68 01 + 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] - 00146 5f pop rdi - 00147 5d pop rbp - 00148 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z _TEXT SEGMENT SimpleFlags$ = 8 @@ -5463,83 +5330,77 @@ $LN5: 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 8b fc mov rdi, rsp - 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 68 - 01 00 00 mov rcx, QWORD PTR [rsp+360] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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); - 00036 48 8b 85 40 01 + 0001f 48 8b 85 40 01 00 00 mov rax, QWORD PTR Link$[rbp] - 0003d 48 83 c0 30 add rax, 48 ; 00000030H - 00041 48 8b c8 mov rcx, rax - 00044 e8 00 00 00 00 call xed_decoded_inst_get_rflags_info - 00049 48 89 45 08 mov QWORD PTR SimpleFlags$[rbp], rax + 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); - 0004d 48 8b 4d 08 mov rcx, QWORD PTR SimpleFlags$[rbp] - 00051 e8 00 00 00 00 call xed_simple_flag_get_written_flag_set - 00056 48 89 45 28 mov QWORD PTR FlagsWritten$[rbp], rax + 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); - 0005a 48 8b 4d 08 mov rcx, QWORD PTR SimpleFlags$[rbp] - 0005e e8 00 00 00 00 call xed_simple_flag_get_undefined_flag_set - 00063 48 89 45 48 mov QWORD PTR FlagsUndefined$[rbp], rax + 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 && - 00067 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] - 0006b 8b 00 mov eax, DWORD PTR [rax] - 0006d c1 e8 06 shr eax, 6 - 00070 83 e0 01 and eax, 1 - 00073 85 c0 test eax, eax - 00075 74 59 je SHORT $LN3@JitDoesIns - 00077 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] - 0007b 8b 00 mov eax, DWORD PTR [rax] - 0007d c1 e8 07 shr eax, 7 - 00080 83 e0 01 and eax, 1 - 00083 85 c0 test eax, eax - 00085 74 49 je SHORT $LN3@JitDoesIns - 00087 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] - 0008b 8b 00 mov eax, DWORD PTR [rax] - 0008d c1 e8 02 shr eax, 2 - 00090 83 e0 01 and eax, 1 - 00093 85 c0 test eax, eax - 00095 74 39 je SHORT $LN3@JitDoesIns - 00097 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] - 0009b 8b 00 mov eax, DWORD PTR [rax] - 0009d c1 e8 0b shr eax, 11 - 000a0 83 e0 01 and eax, 1 - 000a3 85 c0 test eax, eax - 000a5 74 29 je SHORT $LN3@JitDoesIns - 000a7 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] - 000ab 8b 00 mov eax, DWORD PTR [rax] - 000ad 83 e0 01 and eax, 1 - 000b0 85 c0 test eax, eax - 000b2 74 1c je SHORT $LN3@JitDoesIns - 000b4 48 8b 45 48 mov rax, QWORD PTR FlagsUndefined$[rbp] - 000b8 8b 00 mov eax, DWORD PTR [rax] - 000ba c1 e8 04 shr eax, 4 - 000bd 83 e0 01 and eax, 1 - 000c0 85 c0 test eax, eax - 000c2 74 0c je SHORT $LN3@JitDoesIns - 000c4 c7 85 14 01 00 + 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 - 000ce eb 0a jmp SHORT $LN4@JitDoesIns + 000b7 eb 0a jmp SHORT $LN4@JitDoesIns $LN3@JitDoesIns: - 000d0 c7 85 14 01 00 + 000b9 c7 85 14 01 00 00 00 00 00 00 mov DWORD PTR tv132[rbp], 0 $LN4@JitDoesIns: - 000da 8b 85 14 01 00 + 000c3 8b 85 14 01 00 00 mov eax, DWORD PTR tv132[rbp] ; 60 : FlagsWritten->s.sf && @@ -5550,15 +5411,15 @@ $LN4@JitDoesIns: ; 65 : ); ; 66 : } - 000e0 48 8d a5 28 01 + 000c9 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000e7 5f pop rdi - 000e8 5d pop rbp - 000e9 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z _TEXT SEGMENT FlagsWritten$ = 224 @@ -5575,152 +5436,146 @@ $LN9: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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) - 0003b 48 8b 85 e0 00 + 00024 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 00042 8b 00 mov eax, DWORD PTR [rax] - 00044 c1 e8 06 shr eax, 6 - 00047 83 e0 01 and eax, 1 - 0004a 85 c0 test eax, eax - 0004c 74 15 je SHORT $LN2@JitUpdateC + 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; - 0004e 48 8b 85 e8 00 + 00037 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 00055 8b 00 mov eax, DWORD PTR [rax] - 00057 83 e0 bf and eax, -65 ; ffffffbfH - 0005a 48 8b 8d e8 00 + 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] - 00061 89 01 mov DWORD PTR [rcx], eax + 0004a 89 01 mov DWORD PTR [rcx], eax $LN2@JitUpdateC: ; 41 : if (FlagsWritten->s.sf) - 00063 48 8b 85 e0 00 + 0004c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 0006a 8b 00 mov eax, DWORD PTR [rax] - 0006c c1 e8 07 shr eax, 7 - 0006f 83 e0 01 and eax, 1 - 00072 85 c0 test eax, eax - 00074 74 16 je SHORT $LN3@JitUpdateC + 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; - 00076 48 8b 85 e8 00 + 0005f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 0007d 8b 00 mov eax, DWORD PTR [rax] - 0007f 0f ba f0 07 btr eax, 7 - 00083 48 8b 8d e8 00 + 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] - 0008a 89 01 mov DWORD PTR [rcx], eax + 00073 89 01 mov DWORD PTR [rcx], eax $LN3@JitUpdateC: ; 43 : if (FlagsWritten->s.pf) - 0008c 48 8b 85 e0 00 + 00075 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 00093 8b 00 mov eax, DWORD PTR [rax] - 00095 c1 e8 02 shr eax, 2 - 00098 83 e0 01 and eax, 1 - 0009b 85 c0 test eax, eax - 0009d 74 15 je SHORT $LN4@JitUpdateC + 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; - 0009f 48 8b 85 e8 00 + 00088 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 000a6 8b 00 mov eax, DWORD PTR [rax] - 000a8 83 e0 fb and eax, -5 ; fffffffbH - 000ab 48 8b 8d e8 00 + 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] - 000b2 89 01 mov DWORD PTR [rcx], eax + 0009b 89 01 mov DWORD PTR [rcx], eax $LN4@JitUpdateC: ; 45 : if (FlagsWritten->s.of) - 000b4 48 8b 85 e0 00 + 0009d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 000bb 8b 00 mov eax, DWORD PTR [rax] - 000bd c1 e8 0b shr eax, 11 - 000c0 83 e0 01 and eax, 1 - 000c3 85 c0 test eax, eax - 000c5 74 16 je SHORT $LN5@JitUpdateC + 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; - 000c7 48 8b 85 e8 00 + 000b0 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 000ce 8b 00 mov eax, DWORD PTR [rax] - 000d0 0f ba f0 0b btr eax, 11 - 000d4 48 8b 8d e8 00 + 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] - 000db 89 01 mov DWORD PTR [rcx], eax + 000c4 89 01 mov DWORD PTR [rcx], eax $LN5@JitUpdateC: ; 47 : if (FlagsWritten->s.cf) - 000dd 48 8b 85 e0 00 + 000c6 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 000e4 8b 00 mov eax, DWORD PTR [rax] - 000e6 83 e0 01 and eax, 1 - 000e9 85 c0 test eax, eax - 000eb 74 15 je SHORT $LN6@JitUpdateC + 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; - 000ed 48 8b 85 e8 00 + 000d6 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 000f4 8b 00 mov eax, DWORD PTR [rax] - 000f6 83 e0 fe and eax, -2 ; fffffffeH - 000f9 48 8b 8d e8 00 + 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] - 00100 89 01 mov DWORD PTR [rcx], eax + 000e9 89 01 mov DWORD PTR [rcx], eax $LN6@JitUpdateC: ; 49 : if (FlagsWritten->s.af) - 00102 48 8b 85 e0 00 + 000eb 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 00109 8b 00 mov eax, DWORD PTR [rax] - 0010b c1 e8 04 shr eax, 4 - 0010e 83 e0 01 and eax, 1 - 00111 85 c0 test eax, eax - 00113 74 15 je SHORT $LN7@JitUpdateC + 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; - 00115 48 8b 85 e8 00 + 000fe 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 0011c 8b 00 mov eax, DWORD PTR [rax] - 0011e 83 e0 ef and eax, -17 ; ffffffefH - 00121 48 8b 8d e8 00 + 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] - 00128 89 01 mov DWORD PTR [rcx], eax + 00111 89 01 mov DWORD PTR [rcx], eax $LN7@JitUpdateC: ; 51 : } - 0012a 48 8d a5 c8 00 + 00113 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00131 5f pop rdi - 00132 5d pop rbp - 00133 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z _TEXT SEGMENT tv165 = 192 @@ -5738,140 +5593,134 @@ $LN11: 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 8b fc mov rdi, rsp - 0001a b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 0002e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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) || - 0003a 48 8b 85 f0 00 + 00023 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 00041 8b 00 mov eax, DWORD PTR [rax] - 00043 c1 e8 06 shr eax, 6 - 00046 83 e0 01 and eax, 1 - 00049 85 c0 test eax, eax - 0004b 74 23 je SHORT $LN3@JitCheckFl - 0004d 48 8b 85 f0 00 + 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] - 00054 8b 00 mov eax, DWORD PTR [rax] - 00056 c1 e8 06 shr eax, 6 - 00059 83 e0 01 and eax, 1 - 0005c 8b 8d f8 00 00 + 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] - 00062 c1 e9 06 shr ecx, 6 - 00065 83 e1 01 and ecx, 1 - 00068 3b c1 cmp eax, ecx - 0006a 0f 84 05 01 00 + 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: - 00070 48 8b 85 f0 00 + 00059 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 00077 8b 00 mov eax, DWORD PTR [rax] - 00079 c1 e8 07 shr eax, 7 - 0007c 83 e0 01 and eax, 1 - 0007f 85 c0 test eax, eax - 00081 74 23 je SHORT $LN4@JitCheckFl - 00083 48 8b 85 f0 00 + 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] - 0008a 8b 00 mov eax, DWORD PTR [rax] - 0008c c1 e8 07 shr eax, 7 - 0008f 83 e0 01 and eax, 1 - 00092 8b 8d f8 00 00 + 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] - 00098 c1 e9 07 shr ecx, 7 - 0009b 83 e1 01 and ecx, 1 - 0009e 3b c1 cmp eax, ecx - 000a0 0f 84 cf 00 00 + 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: - 000a6 48 8b 85 f0 00 + 0008f 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 000ad 8b 00 mov eax, DWORD PTR [rax] - 000af c1 e8 02 shr eax, 2 - 000b2 83 e0 01 and eax, 1 - 000b5 85 c0 test eax, eax - 000b7 74 23 je SHORT $LN6@JitCheckFl - 000b9 48 8b 85 f0 00 + 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] - 000c0 8b 00 mov eax, DWORD PTR [rax] - 000c2 c1 e8 02 shr eax, 2 - 000c5 83 e0 01 and eax, 1 - 000c8 8b 8d f8 00 00 + 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] - 000ce c1 e9 02 shr ecx, 2 - 000d1 83 e1 01 and ecx, 1 - 000d4 3b c1 cmp eax, ecx - 000d6 0f 84 99 00 00 + 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: - 000dc 48 8b 85 f0 00 + 000c5 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 000e3 8b 00 mov eax, DWORD PTR [rax] - 000e5 c1 e8 0b shr eax, 11 - 000e8 83 e0 01 and eax, 1 - 000eb 85 c0 test eax, eax - 000ed 74 1f je SHORT $LN7@JitCheckFl - 000ef 48 8b 85 f0 00 + 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] - 000f6 8b 00 mov eax, DWORD PTR [rax] - 000f8 c1 e8 0b shr eax, 11 - 000fb 83 e0 01 and eax, 1 - 000fe 8b 8d f8 00 00 + 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] - 00104 c1 e9 0b shr ecx, 11 - 00107 83 e1 01 and ecx, 1 - 0010a 3b c1 cmp eax, ecx - 0010c 74 67 je SHORT $LN5@JitCheckFl + 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: - 0010e 48 8b 85 f0 00 + 000f7 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 00115 8b 00 mov eax, DWORD PTR [rax] - 00117 83 e0 01 and eax, 1 - 0011a 85 c0 test eax, eax - 0011c 74 19 je SHORT $LN8@JitCheckFl - 0011e 48 8b 85 f0 00 + 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] - 00125 8b 00 mov eax, DWORD PTR [rax] - 00127 83 e0 01 and eax, 1 - 0012a 8b 8d f8 00 00 + 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] - 00130 83 e1 01 and ecx, 1 - 00133 3b c1 cmp eax, ecx - 00135 74 3e je SHORT $LN5@JitCheckFl + 00119 83 e1 01 and ecx, 1 + 0011c 3b c1 cmp eax, ecx + 0011e 74 3e je SHORT $LN5@JitCheckFl $LN8@JitCheckFl: - 00137 48 8b 85 f0 00 + 00120 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 0013e 8b 00 mov eax, DWORD PTR [rax] - 00140 c1 e8 04 shr eax, 4 - 00143 83 e0 01 and eax, 1 - 00146 85 c0 test eax, eax - 00148 74 1f je SHORT $LN9@JitCheckFl - 0014a 48 8b 85 f0 00 + 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] - 00151 8b 00 mov eax, DWORD PTR [rax] - 00153 c1 e8 04 shr eax, 4 - 00156 83 e0 01 and eax, 1 - 00159 8b 8d f8 00 00 + 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] - 0015f c1 e9 04 shr ecx, 4 - 00162 83 e1 01 and ecx, 1 - 00165 3b c1 cmp eax, ecx - 00167 74 0c je SHORT $LN5@JitCheckFl + 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: - 00169 c7 85 c0 00 00 + 00152 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv165[rbp], 0 - 00173 eb 0a jmp SHORT $LN10@JitCheckFl + 0015c eb 0a jmp SHORT $LN10@JitCheckFl $LN5@JitCheckFl: - 00175 c7 85 c0 00 00 + 0015e c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv165[rbp], 1 $LN10@JitCheckFl: - 0017f 8b 85 c0 00 00 + 00168 8b 85 c0 00 00 00 mov eax, DWORD PTR tv165[rbp] ; 29 : (FlagsRead->s.sf && FlagsRead->s.sf == Ledger.s.sf) || @@ -5882,15 +5731,15 @@ $LN10@JitCheckFl: ; 34 : ); ; 35 : } - 00185 48 8d a5 d8 00 + 0016e 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 0018c 5f pop rdi - 0018d 5d pop rbp - 0018e c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT RawData$ = 4 @@ -5911,98 +5760,98 @@ $LN6: 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 8b fc mov rdi, rsp - 00016 b9 62 00 00 00 mov ecx, 98 ; 00000062H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 a8 + 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] - 0002a 48 8b 05 00 00 + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 40 01 + 00033 48 33 c5 xor rax, rbp + 00036 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 }; - 00047 c6 45 04 9d mov BYTE PTR RawData$[rbp], 157 ; 0000009dH + 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); - 0004b b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00050 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00055 48 89 85 28 01 + 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 - 0005c 48 83 bd 28 01 + 0005e 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00064 74 2c je SHORT $LN3@JitEmitPop - 00066 c7 44 24 20 00 + 00066 74 2c je SHORT $LN3@JitEmitPop + 00068 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0006e 41 b9 01 00 00 + 00070 41 b9 01 00 00 00 mov r9d, 1 - 00074 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] - 00078 ba 04 00 00 00 mov edx, 4 - 0007d 48 8b 8d 28 01 + 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] - 00084 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00089 48 89 85 38 01 + 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 - 00090 eb 0b jmp SHORT $LN4@JitEmitPop + 00092 eb 0b jmp SHORT $LN4@JitEmitPop $LN3@JitEmitPop: - 00092 48 c7 85 38 01 + 00094 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitPop: - 0009d 48 8b 85 38 01 + 0009f 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000a4 48 89 85 08 01 + 000a6 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000ab 48 8b 85 08 01 + 000ad 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000b2 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000b4 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 21 : XedDecode(&Link->XedInstruction, Link->RawData, 1); - 000b6 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] - 000ba 48 83 c0 30 add rax, 48 ; 00000030H - 000be 41 b8 01 00 00 + 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 - 000c4 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000c8 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 000cc 48 8b c8 mov rcx, rax - 000cf e8 00 00 00 00 call xed_decode + 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); - 000d4 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 000d8 48 8b 8d 70 01 + 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] - 000df e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 000e1 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 23 : return TRUE; - 000e4 b8 01 00 00 00 mov eax, 1 + 000e6 b8 01 00 00 00 mov eax, 1 ; 24 : } - 000e9 8b f8 mov edi, eax - 000eb 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 000ef 48 8d 15 00 00 + 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 - 000f6 e8 00 00 00 00 call _RTC_CheckStackVars - 000fb 8b c7 mov eax, edi - 000fd 48 8b 8d 40 01 + 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] - 00104 48 33 cd xor rcx, rbp - 00107 e8 00 00 00 00 call __security_check_cookie - 0010c 48 8d a5 58 01 + 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] - 00113 5f pop rdi - 00114 5d pop rbp - 00115 c3 ret 0 + 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 @@ -6059,7 +5908,7 @@ Block$ = 368 ?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:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT RawData$ = 4 @@ -6080,98 +5929,98 @@ $LN6: 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 8b fc mov rdi, rsp - 00016 b9 62 00 00 00 mov ecx, 98 ; 00000062H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 a8 + 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] - 0002a 48 8b 05 00 00 + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 40 01 + 00033 48 33 c5 xor rax, rbp + 00036 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 }; - 00047 c6 45 04 9c mov BYTE PTR RawData$[rbp], 156 ; 0000009cH + 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); - 0004b b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00050 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00055 48 89 85 28 01 + 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 - 0005c 48 83 bd 28 01 + 0005e 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00064 74 2c je SHORT $LN3@JitEmitPus - 00066 c7 44 24 20 00 + 00066 74 2c je SHORT $LN3@JitEmitPus + 00068 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0006e 41 b9 01 00 00 + 00070 41 b9 01 00 00 00 mov r9d, 1 - 00074 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] - 00078 ba 04 00 00 00 mov edx, 4 - 0007d 48 8b 8d 28 01 + 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] - 00084 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00089 48 89 85 38 01 + 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 - 00090 eb 0b jmp SHORT $LN4@JitEmitPus + 00092 eb 0b jmp SHORT $LN4@JitEmitPus $LN3@JitEmitPus: - 00092 48 c7 85 38 01 + 00094 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitPus: - 0009d 48 8b 85 38 01 + 0009f 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000a4 48 89 85 08 01 + 000a6 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000ab 48 8b 85 08 01 + 000ad 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000b2 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000b4 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 12 : XedDecode(&Link->XedInstruction, Link->RawData, 1); - 000b6 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] - 000ba 48 83 c0 30 add rax, 48 ; 00000030H - 000be 41 b8 01 00 00 + 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 - 000c4 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000c8 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 000cc 48 8b c8 mov rcx, rax - 000cf e8 00 00 00 00 call xed_decode + 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); - 000d4 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 000d8 48 8b 8d 70 01 + 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] - 000df e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 000e1 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 14 : return TRUE; - 000e4 b8 01 00 00 00 mov eax, 1 + 000e6 b8 01 00 00 00 mov eax, 1 ; 15 : } - 000e9 8b f8 mov edi, eax - 000eb 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 000ef 48 8d 15 00 00 + 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 - 000f6 e8 00 00 00 00 call _RTC_CheckStackVars - 000fb 8b c7 mov eax, edi - 000fd 48 8b 8d 40 01 + 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] - 00104 48 33 cd xor rcx, rbp - 00107 e8 00 00 00 00 call __security_check_cookie - 0010c 48 8d a5 58 01 + 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] - 00113 5f pop rdi - 00114 5d pop rbp - 00115 c3 ret 0 + 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 @@ -6241,32 +6090,26 @@ $LN4: 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 fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8b 8d e0 00 + 00017 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00035 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ - 0003a 8b 85 e8 00 00 + 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] - 00040 83 e0 01 and eax, 1 - 00043 85 c0 test eax, eax - 00045 74 11 je SHORT $LN2@scalar - 00047 ba 30 00 00 00 mov edx, 48 ; 00000030H - 0004c 48 8b 8d e0 00 + 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] - 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00058 48 8b 85 e0 00 + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8d a5 c8 00 + 00048 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 + 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 @@ -6281,32 +6124,26 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8b 85 e0 00 + 00013 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00031 48 83 c0 10 add rax, 16 - 00035 48 8b c8 mov rcx, rax - 00038 e8 00 00 00 00 call ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::~vector > - 0003d 48 8d a5 c8 00 + 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 >::~vector > + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 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.27.29110\include\xmemory +; 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::_Vector_val >,1>::_Get_first, COMDAT -; 1343 : constexpr _Ty1& _Get_first() noexcept { +; 1377 : constexpr _Ty1& _Get_first() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6315,38 +6152,32 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1344 : return *this; - - 00036 48 8b 85 e0 00 + 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] -; 1345 : } +; 1379 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 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::_Vector_val >,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.27.29110\include\vector +; 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 >::_Getal, COMDAT -; 1731 : _Alty& _Getal() noexcept { +; 1817 : _NODISCARD _CONSTEXPR20_CONTAINER _Alty& _Getal() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6355,35 +6186,28 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1732 : return _Mypair._Get_first(); - - 00036 48 8b 85 e0 00 + 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] - 0003d 48 8b c8 mov rcx, rax - 00040 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::_Vector_val >,1>::_Get_first - 00045 90 npad 1 + 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::_Vector_val >,1>::_Get_first -; 1733 : } +; 1819 : } - 00046 48 8d a5 c8 00 + 0002e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004d 5f pop rdi - 0004e 5d pop rbp - 0004f c3 ret 0 + 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 >::_Getal _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; 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 @@ -6396,7 +6220,7 @@ tv86 = 328 this$ = 368 ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ PROC ; std::vector >::_Tidy, COMDAT -; 1685 : void _Tidy() noexcept { // free all storage +; 1755 : _CONSTEXPR20_CONTAINER void _Tidy() noexcept { // free all storage $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6405,123 +6229,117 @@ $LN4: 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 8b fc mov rdi, rsp - 00016 b9 5e 00 00 00 mov ecx, 94 ; 0000005eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 98 - 01 00 00 mov rcx, QWORD PTR [rsp+408] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1686 : auto& _My_data = _Mypair._Myval2; - - 00036 48 8b 85 70 01 + 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] - 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 00026 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1687 : pointer& _Myfirst = _My_data._Myfirst; +; 1757 : pointer& _Myfirst = _My_data._Myfirst; - 00041 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00045 48 83 c0 08 add rax, 8 - 00049 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax + 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 -; 1688 : pointer& _Mylast = _My_data._Mylast; +; 1758 : pointer& _Mylast = _My_data._Mylast; - 0004d 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00051 48 83 c0 10 add rax, 16 - 00055 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax + 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 -; 1689 : pointer& _Myend = _My_data._Myend; +; 1759 : pointer& _Myend = _My_data._Myend; - 00059 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0005d 48 83 c0 18 add rax, 24 - 00061 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax + 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 -; 1690 : -; 1691 : _My_data._Orphan_all(); +; 1760 : +; 1761 : _My_data._Orphan_all(); - 00065 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 00069 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_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 -; 1692 : -; 1693 : if (_Myfirst) { // destroy and deallocate old array +; 1762 : +; 1763 : if (_Myfirst) { // destroy and deallocate old array - 0006e 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 00072 48 83 38 00 cmp QWORD PTR [rax], 0 - 00076 0f 84 92 00 00 + 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 -; 1694 : _Destroy(_Myfirst, _Mylast); +; 1764 : _Destroy(_Myfirst, _Mylast); - 0007c 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 00080 4c 8b 00 mov r8, QWORD PTR [rax] - 00083 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 00087 48 8b 10 mov rdx, QWORD PTR [rax] - 0008a 48 8b 8d 70 01 + 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] - 00091 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy + 0007a e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy -; 1695 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); +; 1765 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); - 00096 48 8b 8d 70 01 + 0007f 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0009d e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 000a2 48 89 85 38 01 + 00086 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0008b 48 89 85 38 01 00 00 mov QWORD PTR tv90[rbp], rax - 000a9 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] - 000ad 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] - 000b1 48 8b 09 mov rcx, QWORD PTR [rcx] - 000b4 48 8b 00 mov rax, QWORD PTR [rax] - 000b7 48 2b c1 sub rax, rcx - 000ba 48 c1 f8 02 sar rax, 2 - 000be 48 89 85 40 01 + 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 - 000c5 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 000c9 48 8b 00 mov rax, QWORD PTR [rax] - 000cc 48 89 85 48 01 + 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 - 000d3 4c 8b 85 40 01 + 000bc 4c 8b 85 40 01 00 00 mov r8, QWORD PTR tv88[rbp] - 000da 48 8b 95 48 01 + 000c3 48 8b 95 48 01 00 00 mov rdx, QWORD PTR tv86[rbp] - 000e1 48 8b 8d 38 01 + 000ca 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR tv90[rbp] - 000e8 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate + 000d1 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate -; 1696 : -; 1697 : _Myfirst = pointer(); +; 1766 : +; 1767 : _Myfirst = nullptr; - 000ed 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 000f1 48 c7 00 00 00 + 000d6 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000da 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 1698 : _Mylast = pointer(); +; 1768 : _Mylast = nullptr; - 000f8 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 000fc 48 c7 00 00 00 + 000e1 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 000e5 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 1699 : _Myend = pointer(); +; 1769 : _Myend = nullptr; - 00103 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] - 00107 48 c7 00 00 00 + 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: -; 1700 : } -; 1701 : } +; 1770 : } +; 1771 : } - 0010e 48 8d a5 58 01 + 000f7 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 + 000fe 5f pop rdi + 000ff 5d pop rbp + 00100 c3 ret 0 ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ENDP ; std::vector >::_Tidy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; 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 @@ -6529,7 +6347,7 @@ _First$ = 232 _Last$ = 240 ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z PROC ; std::vector >::_Destroy, COMDAT -; 1611 : void _Destroy(pointer _First, pointer _Last) { // destroy [_First, _Last) using allocator +; 1678 : _CONSTEXPR20_CONTAINER void _Destroy(pointer _First, pointer _Last) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -6540,39 +6358,34 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1612 : _Destroy_range(_First, _Last, _Getal()); - - 00040 48 8b 8d e0 00 + 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] - 00047 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 0004c 4c 8b c0 mov r8, rax - 0004f 48 8b 95 f0 00 + 00030 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 00035 4c 8b c0 mov r8, rax + 00038 48 8b 95 f0 00 00 00 mov rdx, QWORD PTR _Last$[rbp] - 00056 48 8b 8d e8 00 + 0003f 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _First$[rbp] - 0005d e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > + 00046 e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > -; 1613 : } +; 1681 : } - 00062 48 8d a5 c8 00 + 0004b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00069 5f pop rdi - 0006a 5d pop rbp - 0006b c3 ret 0 + 00052 5f pop rdi + 00053 5d pop rbp + 00054 c3 ret 0 ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ENDP ; std::vector >::_Destroy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; 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 @@ -6582,7 +6395,7 @@ __$ArrayPad$ = 280 this$ = 320 ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::vector >::~vector >, COMDAT -; 672 : ~vector() noexcept { +; 711 : _CONSTEXPR20_CONTAINER ~vector() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6591,75 +6404,74 @@ $LN3: 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 8b fc mov rdi, rsp - 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 68 + 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] - 0002a 48 8b 05 00 00 + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 18 01 + 00033 48 33 c5 xor rax, rbp + 00036 48 89 85 18 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 673 : _Tidy(); +; 712 : _Tidy(); - 00047 48 8b 8d 40 01 + 00049 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0004e e8 00 00 00 00 call ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector >::_Tidy + 00050 e8 00 00 00 00 call ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector >::_Tidy -; 674 : #if _ITERATOR_DEBUG_LEVEL != 0 -; 675 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); +; 713 : #if _ITERATOR_DEBUG_LEVEL != 0 +; 714 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); - 00053 48 8b 8d 40 01 + 00055 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005a e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 0005f 48 8b d0 mov rdx, rax - 00062 48 8d 4d 24 lea rcx, QWORD PTR $S1$[rbp] - 00066 e8 00 00 00 00 call ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator - 0006b 48 8d 45 24 lea rax, QWORD PTR $S1$[rbp] - 0006f 48 89 45 08 mov QWORD PTR _Alproxy$[rbp], rax + 0005c e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_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::allocator + 0006d 48 8d 45 24 lea rax, QWORD PTR $S1$[rbp] + 00071 48 89 45 08 mov QWORD PTR _Alproxy$[rbp], rax -; 676 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); +; 715 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); - 00073 48 c7 85 04 01 + 00075 48 c7 85 04 01 00 00 00 00 00 00 mov QWORD PTR $T4[rbp], 0 - 0007e 48 8b 85 40 01 + 00080 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 00085 48 8d 95 04 01 + 00087 48 8d 95 04 01 00 00 lea rdx, QWORD PTR $T4[rbp] - 0008c 48 8b c8 mov rcx, rax - 0008f e8 00 00 00 00 call ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ; std::exchange - 00094 48 8b d0 mov rdx, rax - 00097 48 8b 4d 08 mov rcx, QWORD PTR _Alproxy$[rbp] - 0009b 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 > + 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 + 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 > -; 677 : #endif // _ITERATOR_DEBUG_LEVEL != 0 -; 678 : } +; 716 : #endif // _ITERATOR_DEBUG_LEVEL != 0 +; 717 : } - 000a0 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000a4 48 8d 15 00 00 + 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 - 000ab e8 00 00 00 00 call _RTC_CheckStackVars - 000b0 90 npad 1 - 000b1 48 8b 8d 18 01 + 000ad e8 00 00 00 00 call _RTC_CheckStackVars + 000b2 48 8b 8d 18 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000b8 48 33 cd xor rcx, rbp - 000bb e8 00 00 00 00 call __security_check_cookie - 000c0 48 8d a5 28 01 + 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] - 000c7 5f pop rdi - 000c8 5d pop rbp - 000c9 c3 ret 0 + 000c8 5f pop rdi + 000c9 5d pop rbp + 000ca c3 ret 0 ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ENDP ; std::vector >::~vector > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; 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 @@ -6667,7 +6479,7 @@ _Ptr$ = 232 _Count$ = 240 ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z PROC ; std::allocator::deallocate, COMDAT -; 801 : void deallocate(_Ty* const _Ptr, const size_t _Count) { +; 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 @@ -6678,34 +6490,28 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 802 : // no overflow check on the following multiply; we assume _Allocate did that check -; 803 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count); - - 00040 48 8b 85 f0 00 + 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] - 00047 48 c1 e0 02 shl rax, 2 - 0004b 48 8b d0 mov rdx, rax - 0004e 48 8b 8d e8 00 + 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] - 00055 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + 0003e e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> -; 804 : } +; 836 : } - 0005a 48 8d a5 c8 00 + 00043 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00061 5f pop rdi - 00062 5d pop rbp - 00063 c3 ret 0 + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c c3 ret 0 ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ENDP ; std::allocator::deallocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -6722,36 +6528,30 @@ $LN4: 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 fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8b 8d e0 00 + 00017 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00035 e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK - 0003a 8b 85 e8 00 00 + 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] - 00040 83 e0 01 and eax, 1 - 00043 85 c0 test eax, eax - 00045 74 11 je SHORT $LN2@scalar - 00047 ba f0 00 00 00 mov edx, 240 ; 000000f0H - 0004c 48 8b 8d e0 00 + 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] - 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00058 48 8b 85 e0 00 + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8d a5 c8 00 + 00048 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 + 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.27.29110\include\xloctime +; 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 @@ -6762,7 +6562,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -6774,147 +6574,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 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] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -6925,7 +6719,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -6937,147 +6731,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 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] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; 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 @@ -7088,7 +6876,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -7099,104 +6887,98 @@ $LN7: 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 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 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] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 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 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 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 - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 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: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 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] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 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] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; 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 @@ -7213,79 +6995,73 @@ $LN4: 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 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 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 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 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 - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_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); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 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] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 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.27.29110\include\xlocale +; 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 @@ -7304,7 +7080,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 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 @@ -7315,371 +7091,443 @@ $LN12: 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 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 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] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 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] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 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 -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 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 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 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] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 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] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 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] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 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 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 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 - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 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 -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 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] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 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 - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 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] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 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] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 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] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 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 - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 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] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 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] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory -; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ +; 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 = 4 -_Pnext$5 = 40 -__$ArrayPad$ = 248 -this$ = 288 -?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT +_Lock$ = 4 +__$ArrayPad$ = 216 +this$ = 256 +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_locked, COMDAT -; 1205 : inline void _Container_base12::_Orphan_all() noexcept { +; 1095 : void _Orphan_all_locked() noexcept { -$LN7: +$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 28 01 - 00 00 sub rsp, 296 ; 00000128H + 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 8b fc mov rdi, rsp - 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 0002a 48 8b 05 00 00 + 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 - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 f8 00 + 00033 48 33 c5 xor rax, rbp + 00036 48 89 85 d8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1206 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1207 : if (_Myproxy) { // proxy allocated, drain it +; 1096 : _Lockit _Lock(_LOCK_DEBUG); - 00047 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 0004e 48 83 38 00 cmp QWORD PTR [rax], 0 - 00052 74 6b je SHORT $LN5@Orphan_all + 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 -; 1208 : _Lockit _Lock(_LOCK_DEBUG); +; 1097 : _Orphan_all_unlocked(); - 00054 ba 03 00 00 00 mov edx, 3 - 00059 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] - 0005d ff 15 00 00 00 - 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z + 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 : } -; 1209 : -; 1210 : for (auto _Pnext = &_Myproxy->_Myfirstiter; *_Pnext; *_Pnext = (*_Pnext)->_Mynextiter) { + 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 - 00063 48 8b 85 20 01 +; 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] - 0006a 48 8b 00 mov rax, QWORD PTR [rax] - 0006d 48 83 c0 08 add rax, 8 - 00071 48 89 45 28 mov QWORD PTR _Pnext$5[rbp], rax - 00075 eb 12 jmp SHORT $LN4@Orphan_all + 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: - 00077 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] - 0007b 48 8b 00 mov rax, QWORD PTR [rax] - 0007e 48 8b 4d 28 mov rcx, QWORD PTR _Pnext$5[rbp] - 00082 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00086 48 89 01 mov QWORD PTR [rcx], rax + 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: - 00089 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] - 0008d 48 83 38 00 cmp QWORD PTR [rax], 0 - 00091 74 10 je SHORT $LN3@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 -; 1211 : (*_Pnext)->_Myproxy = nullptr; +; 1222 : _Pnext->_Myproxy = nullptr; - 00093 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] - 00097 48 8b 00 mov rax, QWORD PTR [rax] - 0009a 48 c7 00 00 00 + 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 -; 1212 : } +; 1223 : } - 000a1 eb d4 jmp SHORT $LN2@Orphan_all + 0005d eb d4 jmp SHORT $LN2@Orphan_all $LN3@Orphan_all: -; 1213 : -; 1214 : _Myproxy->_Myfirstiter = nullptr; +; 1224 : _Myproxy->_Myfirstiter = nullptr; - 000a3 48 8b 85 20 01 + 0005f 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000aa 48 8b 00 mov rax, QWORD PTR [rax] - 000ad 48 c7 40 08 00 + 00066 48 8b 00 mov rax, QWORD PTR [rax] + 00069 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 -; 1215 : } +; 1225 : } - 000b5 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] - 000b9 ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ -$LN5@Orphan_all: + 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 -; 1216 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1217 : } +; 1227 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all() noexcept { - 000bf 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000c3 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData - 000ca e8 00 00 00 00 call _RTC_CheckStackVars - 000cf 90 npad 1 - 000d0 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000d7 48 33 cd xor rcx, rbp - 000da e8 00 00 00 00 call __security_check_cookie - 000df 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000e6 5f pop rdi - 000e7 5d pop rbp - 000e8 c3 ret 0 +$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.27.29110\include\xmemory +; 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 @@ -7690,7 +7538,7 @@ _Ptr$ = 352 _Bytes$ = 360 ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z PROC ; std::_Adjust_manually_vector_aligned, COMDAT -; 132 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { +; 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 @@ -7700,192 +7548,186 @@ $LN21: 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 8b fc mov rdi, rsp - 0001b b9 5e 00 00 00 mov ecx, 94 ; 0000005eH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 98 - 01 00 00 mov rcx, QWORD PTR [rsp+408] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 133 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete -; 134 : _Bytes += _Non_user_size; - - 0003b 48 8b 85 68 01 + 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] - 00042 48 8b 00 mov rax, QWORD PTR [rax] - 00045 48 83 c0 2f add rax, 47 ; 0000002fH - 00049 48 8b 8d 68 01 + 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] - 00050 48 89 01 mov QWORD PTR [rcx], rax + 00039 48 89 01 mov QWORD PTR [rcx], rax -; 135 : -; 136 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); +; 156 : +; 157 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); - 00053 48 8b 85 60 01 + 0003c 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0005a 48 8b 00 mov rax, QWORD PTR [rax] - 0005d 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax + 00043 48 8b 00 mov rax, QWORD PTR [rax] + 00046 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax -; 137 : const uintptr_t _Ptr_container = _Ptr_user[-1]; +; 158 : const uintptr_t _Ptr_container = _Ptr_user[-1]; - 00061 b8 08 00 00 00 mov eax, 8 - 00066 48 6b c0 ff imul rax, rax, -1 - 0006a 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] - 0006e 48 8b 04 01 mov rax, QWORD PTR [rcx+rax] - 00072 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax + 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: -; 138 : -; 139 : // If the following asserts, it likely means that we are performing -; 140 : // an aligned delete on memory coming from an unaligned allocation. -; 141 : _STL_ASSERT(_Ptr_user[-2] == _Big_allocation_sentinel, "invalid argument"); - - 00076 b8 08 00 00 00 mov eax, 8 - 0007b 48 6b c0 fe imul rax, rax, -2 - 0007f 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] - 00083 48 ba fa fa fa +; 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 - 0008d 48 39 14 01 cmp QWORD PTR [rcx+rax], rdx - 00091 75 02 jne SHORT $LN14@Adjust_man - 00093 eb 77 jmp SHORT $LN15@Adjust_man + 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: - 00095 8b 05 00 00 00 + 0007e 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 0009b 83 c0 09 add eax, 9 - 0009e 48 8d 0d 00 00 + 00084 83 c0 09 add eax, 9 + 00087 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ - 000a5 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx - 000aa 48 8d 0d 00 00 + 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@ - 000b1 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 000b6 45 33 c9 xor r9d, r9d - 000b9 44 8b c0 mov r8d, eax - 000bc 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 000c3 b9 02 00 00 00 mov ecx, 2 - 000c8 ff 15 00 00 00 + 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 - 000ce 83 f8 01 cmp eax, 1 - 000d1 75 03 jne SHORT $LN19@Adjust_man - 000d3 cc int 3 - 000d4 33 c0 xor eax, eax + 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: - 000d6 8b 05 00 00 00 + 000bf 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 000dc 83 c0 09 add eax, 9 - 000df 48 c7 44 24 20 + 000c5 83 c0 09 add eax, 9 + 000c8 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 000e8 44 8b c8 mov r9d, eax - 000eb 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 000f2 48 8d 15 00 00 + 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@ - 000f9 48 8d 0d 00 00 + 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@ - 00100 ff 15 00 00 00 + 000e9 ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 00106 33 c0 xor eax, eax - 00108 85 c0 test eax, eax - 0010a 75 89 jne SHORT $LN7@Adjust_man + 000ef 33 c0 xor eax, eax + 000f1 85 c0 test eax, eax + 000f3 75 89 jne SHORT $LN7@Adjust_man $LN15@Adjust_man: - 0010c 33 c0 xor eax, eax - 0010e 85 c0 test eax, eax - 00110 0f 85 60 ff ff + 000f5 33 c0 xor eax, eax + 000f7 85 c0 test eax, eax + 000f9 0f 85 60 ff ff ff jne $LN4@Adjust_man -; 142 : -; 143 : // Extra paranoia on aligned allocation/deallocation; ensure _Ptr_container is -; 144 : // in range [_Min_back_shift, _Non_user_size] -; 145 : #ifdef _DEBUG -; 146 : constexpr uintptr_t _Min_back_shift = 2 * sizeof(void*); +; 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*); - 00116 48 c7 45 48 10 + 000ff 48 c7 45 48 10 00 00 00 mov QWORD PTR _Min_back_shift$[rbp], 16 -; 147 : #else // ^^^ _DEBUG ^^^ // vvv !_DEBUG vvv -; 148 : constexpr uintptr_t _Min_back_shift = sizeof(void*); -; 149 : #endif // _DEBUG -; 150 : const uintptr_t _Back_shift = reinterpret_cast(_Ptr) - _Ptr_container; +; 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(_Ptr) - _Ptr_container; - 0011e 48 8b 85 60 01 + 00107 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00125 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] - 00129 48 8b 00 mov rax, QWORD PTR [rax] - 0012c 48 2b c1 sub rax, rcx - 0012f 48 89 45 68 mov QWORD PTR _Back_shift$[rbp], rax + 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: -; 151 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); +; 172 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); - 00133 48 83 7d 68 10 cmp QWORD PTR _Back_shift$[rbp], 16 - 00138 72 09 jb SHORT $LN16@Adjust_man - 0013a 48 83 7d 68 2f cmp QWORD PTR _Back_shift$[rbp], 47 ; 0000002fH - 0013f 77 02 ja SHORT $LN16@Adjust_man - 00141 eb 77 jmp SHORT $LN17@Adjust_man + 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: - 00143 8b 05 00 00 00 + 0012c 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 00149 83 c0 13 add eax, 19 - 0014c 48 8d 0d 00 00 + 00132 83 c0 13 add eax, 19 + 00135 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ - 00153 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx - 00158 48 8d 0d 00 00 + 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@ - 0015f 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 00164 45 33 c9 xor r9d, r9d - 00167 44 8b c0 mov r8d, eax - 0016a 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00171 b9 02 00 00 00 mov ecx, 2 - 00176 ff 15 00 00 00 + 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 - 0017c 83 f8 01 cmp eax, 1 - 0017f 75 03 jne SHORT $LN20@Adjust_man - 00181 cc int 3 - 00182 33 c0 xor eax, eax + 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: - 00184 8b 05 00 00 00 + 0016d 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 0018a 83 c0 13 add eax, 19 - 0018d 48 c7 44 24 20 + 00173 83 c0 13 add eax, 19 + 00176 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 00196 44 8b c8 mov r9d, eax - 00199 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 001a0 48 8d 15 00 00 + 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@ - 001a7 48 8d 0d 00 00 + 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@ - 001ae ff 15 00 00 00 + 00197 ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 001b4 33 c0 xor eax, eax - 001b6 85 c0 test eax, eax - 001b8 75 89 jne SHORT $LN13@Adjust_man + 0019d 33 c0 xor eax, eax + 0019f 85 c0 test eax, eax + 001a1 75 89 jne SHORT $LN13@Adjust_man $LN17@Adjust_man: - 001ba 33 c0 xor eax, eax - 001bc 85 c0 test eax, eax - 001be 0f 85 6f ff ff + 001a3 33 c0 xor eax, eax + 001a5 85 c0 test eax, eax + 001a7 0f 85 6f ff ff ff jne $LN10@Adjust_man -; 152 : _Ptr = reinterpret_cast(_Ptr_container); +; 173 : _Ptr = reinterpret_cast(_Ptr_container); - 001c4 48 8b 85 60 01 + 001ad 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 001cb 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] - 001cf 48 89 08 mov QWORD PTR [rax], rcx + 001b4 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 001b8 48 89 08 mov QWORD PTR [rax], rcx -; 153 : } +; 174 : } - 001d2 48 8d a5 48 01 + 001bb 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] - 001d9 5f pop rdi - 001da 5d pop rbp - 001db c3 ret 0 + 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 @@ -7908,40 +7750,34 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 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] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -7958,25 +7794,18 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 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] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -7991,25 +7820,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 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] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -8024,25 +7846,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 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] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -8055,21 +7870,14 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 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] - 0003e 5f pop rdi - 0003f 5d pop rbp - 00040 c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/Junk.cod b/CodeVirtualizer/x64/Debug/Junk.cod index b0409cb..63c27c4 100644 --- a/CodeVirtualizer/x64/Debug/Junk.cod +++ b/CodeVirtualizer/x64/Debug/Junk.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@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 @@ -33,55 +33,56 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon 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 -__886F7F70_xloctime DB 01H -__3DD0E9E9_xed-util@h DB 01H -__209FD46F_xed-iform-map@h DB 01H -__4E05E119_xed-inst@h DB 01H -__0607FC5A_xed-flags@h DB 01H -__B4910D57_xed-operand-accessors@h DB 01H -__8663E876_xed-state@h DB 01H -__BB5B4FF8_xed-encode@h DB 01H -__21860875_xed-encoder-hl@h DB 01H -__F7815311_xed-decoded-inst-api@h DB 01H -__0C803D80_Junk@cpp DB 01H -__7EA464AF_istream DB 01H -__1D745195_ostream DB 01H -__6FFBAAB7_streambuf DB 01H -__528871F3_iterator DB 01H -__3E6EDFAA_iosfwd DB 01H -__CF1C1A3F_utility DB 01H -__38038D2D_xstddef DB 01H -__EE19A480_xatomic@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 +__74DFB793_Junk@cpp 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 @@ -94,9 +95,9 @@ PUBLIC ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr > >::_Getvals PUBLIC ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ; std::time_get > >::_Getvals PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `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@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +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 memcpy:PROC @@ -114,68 +115,67 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC -EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck: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+65 + 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+70 + 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+70 + 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+75 + 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+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + 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+165 + 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+223 + 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+379 + 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+379 + 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 rtc$TMZ @@ -196,53 +196,58 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_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.27.29110\include\xlocnum', 00H ; `string' + 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@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@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.27.29110\include\xlocale', 00H ; `string' +??_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 xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$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 025063501H +$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 035053401H +$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 035052a01H +$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 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -287,90 +292,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -380,7 +333,7 @@ __JustMyCode_Default PROC ; COMDAT __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.27.29110\include\xloctime +; 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 @@ -391,7 +344,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -403,147 +356,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 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] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -554,7 +501,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -566,147 +513,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 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] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; 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 @@ -717,7 +658,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -728,104 +669,98 @@ $LN7: 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 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 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] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 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 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 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 - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 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: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 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] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 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] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; 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 @@ -842,79 +777,73 @@ $LN4: 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 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 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 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 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 - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_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); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 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] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 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.27.29110\include\xlocale +; 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 @@ -933,7 +862,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 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 @@ -944,251 +873,251 @@ $LN12: 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 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 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] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 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] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 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 -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 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 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 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] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 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] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 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] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 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 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 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 - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 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 -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 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] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 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 - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 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] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 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] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 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] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 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 - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 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] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 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] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1211,40 +1140,34 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 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] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Junk.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Junk.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1261,25 +1184,18 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0C803D80_Junk@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__74DFB793_Junk@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Junk.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Junk.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1294,25 +1210,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0C803D80_Junk@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__74DFB793_Junk@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Junk.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Junk.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1327,25 +1236,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0C803D80_Junk@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__74DFB793_Junk@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Junk.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Junk.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1358,21 +1260,14 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0C803D80_Junk@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__74DFB793_Junk@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 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 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/Main.cod b/CodeVirtualizer/x64/Debug/Main.cod index 6f4c015..b65a12d 100644 --- a/CodeVirtualizer/x64/Debug/Main.cod +++ b/CodeVirtualizer/x64/Debug/Main.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -31,62 +31,64 @@ __A118E6DC_stralign@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H -__8906660C_vcruntime_new@h DB 01H +__02E23235_vcruntime_new@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 -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon 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 -__886F7F70_xloctime DB 01H -__3DD0E9E9_xed-util@h DB 01H -__209FD46F_xed-iform-map@h DB 01H -__4E05E119_xed-inst@h DB 01H -__0607FC5A_xed-flags@h DB 01H -__B4910D57_xed-operand-accessors@h DB 01H -__8663E876_xed-state@h DB 01H -__BB5B4FF8_xed-encode@h DB 01H -__21860875_xed-encoder-hl@h DB 01H -__F7815311_xed-decoded-inst-api@h DB 01H -__4031338C_Main@cpp DB 01H -__7EA464AF_istream DB 01H -__1D745195_ostream DB 01H -__6FFBAAB7_streambuf DB 01H -__528871F3_iterator DB 01H -__3E6EDFAA_iosfwd DB 01H -__CF1C1A3F_utility DB 01H -__38038D2D_xstddef DB 01H -__EE19A480_xatomic@h DB 01H -__8266A2FD_iomanip 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 +__386EB99F_Main@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 _DATA SEGMENT ?TestBuffer@@3PAEA DB 048H ; TestBuffer @@ -152,79 +154,76 @@ PUBLIC __local_stdio_printf_options PUBLIC _vfprintf_l PUBLIC printf PUBLIC wmemcpy -PUBLIC ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type -PUBLIC ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof +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 PUBLIC ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs PUBLIC ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr -PUBLIC ?hex@std@@YAAEAVios_base@1@AEAV21@@Z ; std::hex PUBLIC ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ; std::time_get > >::_Getvals PUBLIC ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ; std::time_get > >::_Getvals +PUBLIC ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate +PUBLIC ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::~vector > +PUBLIC ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy +PUBLIC ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector >::_Tidy +PUBLIC ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_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::_Vector_val >,1>::_Get_first +PUBLIC ??1_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::~_NATIVE_CODE_BLOCK PUBLIC ?MakeExecutableBuffer@@YAPEAXPEAXK@Z ; MakeExecutableBuffer PUBLIC main -PUBLIC ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z ; std::operator<< > -PUBLIC ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ; std::operator<<,__int64> -PUBLIC ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ; std::setfill -PUBLIC ??0?$_Fillobj@D@std@@QEAA@D@Z ; std::_Fillobj::_Fillobj -PUBLIC ??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z ; std::operator<<,char> -PUBLIC ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::_Sentry_base::_Sentry_base -PUBLIC ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::_Sentry_base::~_Sentry_base -PUBLIC ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::sentry::sentry -PUBLIC ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::sentry::~sentry -PUBLIC ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ ; std::basic_ostream >::sentry::operator bool +PUBLIC ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator +PUBLIC ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z ; std::exchange +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 > +PUBLIC ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > +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 > +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 >::deallocate PUBLIC __JustMyCode_Default PUBLIC ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +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@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' -PUBLIC ??_C@_05PDJBBECF@pause@ ; `string' -PUBLIC ??_C@_0BD@FOIEMPBM@The?5numba?5was?3?5?$CFX?6@ ; `string' +PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0M@INKCCKOG@?6?6Original?6@ ; `string' +PUBLIC ??_C@_06CHBCCLOP@?6?6New?6@ ; `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_VirtualAlloc:PROC EXTRN __imp_srand:PROC -EXTRN __imp_rand:PROC -EXTRN __imp_system:PROC EXTRN __imp___acrt_iob_func:PROC EXTRN __imp___stdio_common_vfprintf:PROC EXTRN __imp__calloc_dbg:PROC -EXTRN ?uncaught_exception@std@@YA_NXZ:PROC ; std::uncaught_exception +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 __imp__time64:PROC 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 __imp_?good@ios_base@std@@QEBA_NXZ:PROC -EXTRN __imp_?flags@ios_base@std@@QEBAHXZ:PROC -EXTRN __imp_?setf@ios_base@std@@QEAAHHH@Z:PROC -EXTRN __imp_?width@ios_base@std@@QEBA_JXZ:PROC -EXTRN __imp_?width@ios_base@std@@QEAA_J_J@Z:PROC -EXTRN __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z:PROC -EXTRN __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z:PROC -EXTRN __imp_?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ:PROC -EXTRN __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ:PROC -EXTRN __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ:PROC -EXTRN __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z:PROC -EXTRN __imp_?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ:PROC -EXTRN __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z:PROC -EXTRN __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z:PROC -EXTRN __imp_?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ:PROC -EXTRN __imp__time64:PROC -EXTRN ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z:PROC ; std::setw EXTRN xed_tables_init:PROC -EXTRN ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z:PROC ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK -EXTRN ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z:PROC ; NcAppendToBlock -EXTRN ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z:PROC ; NcInsertBlockAfter -EXTRN ?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z:PROC ; NcAssemble -EXTRN ?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z:PROC ; JitEmitPreRipMov -EXTRN ?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z:PROC ; JitEmitPostRipMov +EXTRN ??0_NATIVE_CODE_BLOCK@@QEAA@XZ:PROC ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK +EXTRN ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z:PROC ; NcGenUnusedLabelId +EXTRN ?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z:PROC ; NcDisassemble +EXTRN ?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z:PROC ; NcDebugPrint +EXTRN ?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z:PROC ; ObfCreateOpaqueBranches +EXTRN ?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z:PROC ; ObfCombineOpaqueBranches +EXTRN ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z:PROC ; ObfInsertOpaqueBranchBlock EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC @@ -233,7 +232,6 @@ EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck:PROC EXTRN __GSHandlerCheck_EH4:PROC EXTRN __security_check_cookie:PROC -EXTRN __imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A:BYTE EXTRN __security_cookie:QWORD ; COMDAT ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA _BSS SEGMENT @@ -242,206 +240,224 @@ _BSS ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + 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+70 + 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+70 + 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+75 + DD imagerel $LN3+51 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$__local_stdio_printf_options DD imagerel $LN3 - DD imagerel $LN3+59 + DD imagerel $LN3+44 DD imagerel $unwind$__local_stdio_printf_options pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_vfprintf_l DD imagerel $LN3 - DD imagerel $LN3+126 + DD imagerel $LN3+103 DD imagerel $unwind$_vfprintf_l pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$printf DD imagerel $LN3 - DD imagerel $LN3+214 + DD imagerel $LN3+216 DD imagerel $unwind$printf pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DD imagerel $LN5 - DD imagerel $LN5+118 - DD imagerel $unwind$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z +$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$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DD imagerel $LN3 - DD imagerel $LN3+57 - DD imagerel $unwind$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ +$pdata$time DD imagerel time + DD imagerel time+54 + DD imagerel $unwind$time pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + 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+165 + 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+223 + DD imagerel $LN7+200 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?hex@std@@YAAEAVios_base@1@AEAV21@@Z DD imagerel $LN3 - DD imagerel $LN3+95 - DD imagerel $unwind$?hex@std@@YAAEAVios_base@1@AEAV21@@Z +$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$time DD imagerel time - DD imagerel time+77 - DD imagerel $unwind$time +$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$??$_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+379 - DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +$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$??$_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+379 - DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +$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$?MakeExecutableBuffer@@YAPEAXPEAXK@Z DD imagerel $LN4 - DD imagerel $LN4+136 - DD imagerel $unwind$?MakeExecutableBuffer@@YAPEAXPEAXK@Z +$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$main DD imagerel $LN19 - DD imagerel $LN19+1068 - DD imagerel $unwind$main +$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$main$dtor$0 DD imagerel main$dtor$0 - DD imagerel main$dtor$0+44 - DD imagerel $unwind$main$dtor$0 +$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$main$dtor$1 DD imagerel main$dtor$1 - DD imagerel main$dtor$1+44 - DD imagerel $unwind$main$dtor$1 +$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$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DD imagerel $LN23 - DD imagerel $LN23+1095 - DD imagerel $unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z +$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$?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD imagerel ?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA - DD imagerel ?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA+36 - DD imagerel $unwind$?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA +$pdata$?MakeExecutableBuffer@@YAPEAXPEAXK@Z DD imagerel $LN4 + DD imagerel $LN4+113 + DD imagerel $unwind$?MakeExecutableBuffer@@YAPEAXPEAXK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD imagerel ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA - DD imagerel ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA+91 - DD imagerel $unwind$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA +$pdata$main DD imagerel $LN6 + DD imagerel $LN6+390 + DD imagerel $unwind$main pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z DD imagerel $LN3 - DD imagerel $LN3+140 - DD imagerel $unwind$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z +$pdata$main$dtor$0 DD imagerel main$dtor$0 + DD imagerel main$dtor$0+36 + DD imagerel $unwind$main$dtor$0 pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z DD imagerel $LN3 - DD imagerel $LN3+94 - DD imagerel $unwind$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z +$pdata$main$dtor$1 DD imagerel main$dtor$1 + DD imagerel main$dtor$1+36 + DD imagerel $unwind$main$dtor$1 pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??0?$_Fillobj@D@std@@QEAA@D@Z DD imagerel $LN3 - DD imagerel $LN3+91 - DD imagerel $unwind$??0?$_Fillobj@D@std@@QEAA@D@Z +$pdata$main$dtor$2 DD imagerel main$dtor$2 + DD imagerel main$dtor$2+39 + DD imagerel $unwind$main$dtor$2 pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z DD imagerel $LN3 - DD imagerel $LN3+133 - DD imagerel $unwind$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z +$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$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD imagerel $LN4 - DD imagerel $LN4+171 - DD imagerel $unwind$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z +$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$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD imagerel $LN4 - DD imagerel $LN4+143 - DD imagerel $unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ +$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$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD imagerel $LN7 - DD imagerel $LN7+284 - DD imagerel $unwind$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z +$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$?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA DD imagerel ?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA - DD imagerel ?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA+39 - DD imagerel $unwind$?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA +$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$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD imagerel $LN6 - DD imagerel $LN6+139 - DD imagerel $unwind$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ +$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$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ DD imagerel $LN3 - DD imagerel $LN3+75 - DD imagerel $unwind$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ +$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 @@ -461,351 +477,409 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0BD@FOIEMPBM@The?5numba?5was?3?5?$CFX?6@ +; COMDAT ??_C@_06CHBCCLOP@?6?6New?6@ CONST SEGMENT -??_C@_0BD@FOIEMPBM@The?5numba?5was?3?5?$CFX?6@ DB 'The numba was: %X', 0aH - DB 00H ; `string' +??_C@_06CHBCCLOP@?6?6New?6@ DB 0aH, 0aH, 'New', 0aH, 00H ; `string' CONST ENDS -; COMDAT ??_C@_05PDJBBECF@pause@ +; COMDAT ??_C@_0M@INKCCKOG@?6?6Original?6@ CONST SEGMENT -??_C@_05PDJBBECF@pause@ DB 'pause', 00H ; `string' +??_C@_0M@INKCCKOG@?6?6Original?6@ DB 0aH, 0aH, 'Original', 0aH, 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_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.27.29110\include\xlocnum', 00H ; `string' + 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@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; 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@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_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.27.29110\include\xlocale', 00H ; `string' + 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$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ DD 025052a01H - DD 010e2313H - DD 07007001dH - DD 05006H +$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$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 02H +$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$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 060H - DD imagerel $ip2state$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025052a19H - DD 010e2313H - DD 070070021H - DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ +$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$?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA DD 031001H - DD 0700c4210H +$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$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DB 06H +$ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 02H DB 00H DB 00H - DB 09eH - DB 02H - DB 0f1H, 02H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$stateUnwindMap$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DB 02H - DB 0eH - DD imagerel ?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DB 028H - DD imagerel $stateUnwindMap$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z - DD imagerel $ip2state$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z +$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$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025052f11H +$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025051819H DD 01132318H - DD 0700c0021H + DD 0700c001dH DD 0500bH DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 02H - DB 00H - DB 00H + DD imagerel $cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 060H - DD imagerel $ip2state$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ +$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$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025052a19H - DD 010e2313H - DD 070070021H - DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ +$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$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025052f01H +$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$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z DD 025052f01H +$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025051801H DD 01132318H - DD 0700c001fH + DD 0700c001dH DD 0500bH 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 DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 02aH + DW 016dH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$_Fillobj@D@std@@QEAA@D@Z DD 025052e01H - DD 01122317H - DD 0700b001dH - DD 0500aH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z DD 025052e01H - DD 01122317H - DD 0700b001dH - DD 0500aH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z DD 025052f01H - DD 01132318H - DD 0700c001fH +$unwind$main$dtor$2 DD 031001H + DD 0700c4210H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD 031001H +$unwind$main$dtor$1 DD 031001H DD 0700c4210H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD 031001H +$unwind$main$dtor$0 DD 031001H DD 0700c4210H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DB 0aH +$ip2state$main DB 0eH DB 00H DB 00H - DB 0c6H + DB 0b6H DB 02H - DB 011H, 02H + DB 'B' DB 04H - DB 0adH, 0aH + DB 01aH + DB 06H + DB 0b9H, 02H + DB 04H + DB 01aH DB 02H - DB 0ecH + DB 014H DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$handlerMap$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DB 02H - DB 01H - DB 080H - DD imagerel ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$tryMap$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DB 02H - DB 02H - DB 02H - DB 04H - DD imagerel $handlerMap$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$stateUnwindMap$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DB 06H +$stateUnwindMap$main DB 06H DB 0eH - DD imagerel ?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA - DB 028H - DB 030H + DD imagerel main$dtor$0 + DB 02eH + DD imagerel main$dtor$1 + DB 02eH + DD imagerel main$dtor$2 xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DB 038H - DD imagerel $stateUnwindMap$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z - DD imagerel $tryMap$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z - DD imagerel $ip2state$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z +$cppxdata$main DB 028H + DD imagerel $stateUnwindMap$main + DD imagerel $ip2state$main xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DD 025053f19H - DD 01122317H - DD 0700b004bH - DD 0500aH +$unwind$main DD 025053119H + DD 010a230fH + DD 07003003dH + DD 05002H DD imagerel __GSHandlerCheck_EH4 - DD imagerel $cppxdata$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z - DD 0243H + DD imagerel $cppxdata$main + DD 01d2H xdata ENDS ; COMDAT CONST CONST SEGMENT -??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$rtcName$0 DB 05fH ; std::operator<< > - DB 04fH +main$rtcName$0 DB 042H + DB 06cH + DB 06fH + DB 063H DB 06bH DB 00H - ORG $+12 -??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$rtcVarDesc DD 048H ; std::operator<< > - DD 010H - DQ FLAT:??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$rtcName$0 - ORG $+48 -??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$rtcFrameData DD 01H ; std::operator<< > + ORG $+2 +main$rtcName$1 DB 04eH + DB 06fH + DB 074H + DB 054H + DB 061H + DB 06bH + DB 065H + DB 06eH + DB 00H + ORG $+3 +main$rtcName$2 DB 054H + DB 061H + DB 06bH + DB 065H + DB 06eH + DB 00H + ORG $+6 +main$rtcVarDesc DD 0c8H + DD 030H + DQ FLAT:main$rtcName$2 + DD 078H + DD 030H + DQ FLAT:main$rtcName$1 + DD 028H + DD 030H + DQ FLAT:main$rtcName$0 + ORG $+144 +main$rtcFrameData DD 03H DD 00H - DQ FLAT:??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$rtcVarDesc + DQ FLAT:main$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$main$dtor$1 DD 031001H - DD 0700c4210H - DD 0500bH +$unwind$?MakeExecutableBuffer@@YAPEAXPEAXK@Z DD 025051701H + DD 01122317H + DD 0700b0021H + DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$main$dtor$0 DD 031001H - DD 0700c4210H - DD 0500bH +$unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$main DB 0aH - DB 00H - DB 00H - DB 0c0H - DB 02H - DB 0a4H +$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 '8' - DB 04H - DB 0a4H DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$stateUnwindMap$main DB 04H - DB 0eH - DD imagerel main$dtor$0 - DB 036H - DD imagerel main$dtor$1 +$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 -$cppxdata$main DB 028H - DD imagerel $stateUnwindMap$main - DD imagerel $ip2state$main +$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$main DD 035052f19H - DD 010a330fH - DD 07003008bH - DD 05002H - DD imagerel __GSHandlerCheck_EH4 - DD imagerel $cppxdata$main - DD 044aH +$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 -main$rtcName$0 DB 041H - DB 073H - DB 06dH - DB 04cH - DB 065H - DB 06eH +??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcName$0 DB 024H ; std::vector >::~vector > + DB 053H + DB 031H DB 00H - ORG $+9 -main$rtcVarDesc DD 0134H - DD 04H - DQ FLAT:main$rtcName$0 + ORG $+12 +??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcVarDesc DD 044H ; std::vector >::~vector > + DD 01H + DQ FLAT:??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcName$0 ORG $+48 -main$rtcFrameData DD 01H +??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcFrameData DD 01H ; std::vector >::~vector > DD 00H - DQ FLAT:main$rtcVarDesc + DQ FLAT:??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?MakeExecutableBuffer@@YAPEAXPEAXK@Z DD 025052e01H - DD 01122317H - DD 0700b0021H - DD 0500aH +$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025051d01H + DD 0118231dH + DD 07011001dH + DD 05010H 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 025063501H +$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 025063501H +$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$time DD 025052a01H - DD 010e2313H - DD 07007001dH - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?hex@std@@YAAEAVios_base@1@AEAV21@@Z DD 025052a01H - DD 010e2313H - DD 07007001dH - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H +$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 035052a01H +$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 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -850,54 +924,78 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DB 02H - DB 00H - DB 00H +$unwind$time DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 036H + DB 07eH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DB 060H - DD imagerel $ip2state$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ +$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$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DD 025051e19H - DD 010a230fH - DD 07003001dH - DD 05002H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ +$unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD 025051301H + DD 010e2313H + DD 070070021H + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DB 02H - DB 00H - DB 00H +$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DB 060H - DD imagerel $ip2state$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z +$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035051801H + DD 01133318H + DD 0700c002fH + DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DD 025052f19H - DD 01132318H - DD 0700c001fH - DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 045H + DB 0bfH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$printf DD 025054a19H +$unwind$printf DD 025054c19H DD 011d2322H DD 07016002bH DD 05015H @@ -926,97 +1024,45 @@ printf$rtcFrameData DD 01H CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$_vfprintf_l DD 035053901H +$unwind$_vfprintf_l DD 035052201H DD 011d3322H DD 07016001fH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$__local_stdio_printf_options DD 025051e01H +$unwind$__local_stdio_printf_options DD 025050f01H DD 010a230fH DD 07003001dH DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -1026,2188 +1072,1228 @@ __JustMyCode_Default PROC ; COMDAT __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.27.29110\include\ostream -; COMDAT ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ +; 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 -this$ = 224 -??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ PROC ; std::basic_ostream >::sentry::operator bool, COMDAT +_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 >::deallocate, COMDAT -; 125 : explicit __CLR_OR_THIS_CALL operator bool() const { +; 693 : static _CONSTEXPR20_DYNALLOC void deallocate(_Alloc& _Al, const pointer _Ptr, const size_type _Count) { $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 + 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 - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 126 : return _Ok; - - 00036 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 0f b6 40 08 movzx eax, BYTE PTR [rax+8] + 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>(_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> -; 127 : } +; 703 : } +; 704 : } - 00041 48 8d a5 c8 00 + 00040 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 -??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ ENDP ; std::basic_ostream >::sentry::operator bool + 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 >::deallocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream -; COMDAT ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ +; 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 -_Zero_uncaught_exceptions$ = 4 -tv72 = 212 -this$ = 256 -??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ PROC ; std::basic_ostream >::sentry::~sentry, COMDAT +_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 >, COMDAT -; 110 : __CLR_OR_THIS_CALL ~sentry() noexcept { +; 985 : _CONSTEXPR20_DYNALLOC void _Deallocate_plain(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) 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 8b fc mov rdi, rsp - 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 111 : #if !_HAS_EXCEPTIONS -; 112 : const bool _Zero_uncaught_exceptions = true; -; 113 : #elif _HAS_DEPRECATED_UNCAUGHT_EXCEPTION -; 114 : const bool _Zero_uncaught_exceptions = !_STD uncaught_exception(); // TRANSITION, ArchivedOS-12000909 - - 00036 e8 00 00 00 00 call ?uncaught_exception@std@@YA_NXZ ; std::uncaught_exception - 0003b 0f b6 c0 movzx eax, al - 0003e 85 c0 test eax, eax - 00040 75 09 jne SHORT $LN4@sentry - 00042 c6 85 d4 00 00 - 00 01 mov BYTE PTR tv72[rbp], 1 - 00049 eb 07 jmp SHORT $LN5@sentry -$LN4@sentry: - 0004b c6 85 d4 00 00 - 00 00 mov BYTE PTR tv72[rbp], 0 -$LN5@sentry: - 00052 0f b6 85 d4 00 - 00 00 movzx eax, BYTE PTR tv72[rbp] - 00059 88 45 04 mov BYTE PTR _Zero_uncaught_exceptions$[rbp], al - -; 115 : #else // ^^^ _HAS_DEPRECATED_UNCAUGHT_EXCEPTION / !_HAS_DEPRECATED_UNCAUGHT_EXCEPTION vvv -; 116 : const bool _Zero_uncaught_exceptions = _STD uncaught_exceptions() == 0; -; 117 : #endif // !_HAS_DEPRECATED_UNCAUGHT_EXCEPTION -; 118 : -; 119 : if (_Zero_uncaught_exceptions) { - - 0005c 0f b6 45 04 movzx eax, BYTE PTR _Zero_uncaught_exceptions$[rbp] - 00060 85 c0 test eax, eax - 00062 74 10 je SHORT $LN2@sentry - -; 120 : this->_Myostr._Osfx(); - - 00064 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 0006b 48 8b 08 mov rcx, QWORD PTR [rax] - 0006e ff 15 00 00 00 - 00 call QWORD PTR __imp_?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ -$LN2@sentry: - -; 121 : } -; 122 : } - - 00074 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0007b e8 00 00 00 00 call ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::_Sentry_base::~_Sentry_base - 00080 90 npad 1 - 00081 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00088 5f pop rdi - 00089 5d pop rbp - 0008a c3 ret 0 -??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ENDP ; std::basic_ostream >::sentry::~sentry +$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 >::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 > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream -; COMDAT ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z +; 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 -_Tied$ = 8 -this$ = 256 -_Ostr$ = 264 -??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z PROC ; std::basic_ostream >::sentry::sentry, COMDAT +_Ptr$ = 224 +_Bytes$ = 232 +??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z PROC ; std::_Deallocate<16,0>, COMDAT -; 92 : explicit __CLR_OR_THIS_CALL sentry(basic_ostream& _Ostr) : _Sentry_base(_Ostr) { +; 251 : _CONSTEXPR20_DYNALLOC void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { -$LN7: +$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 08 01 - 00 00 sub rsp, 264 ; 00000108H + 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 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR _Ostr$[rbp] - 00042 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00049 e8 00 00 00 00 call ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::_Sentry_base::_Sentry_base - 0004e 90 npad 1 - -; 93 : if (!_Ostr.good()) { - - 0004f 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00056 48 8b 00 mov rax, QWORD PTR [rax] - 00059 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 0005d 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00064 48 03 c8 add rcx, rax - 00067 48 8b c1 mov rax, rcx - 0006a 48 8b c8 mov rcx, rax - 0006d ff 15 00 00 00 - 00 call QWORD PTR __imp_?good@ios_base@std@@QEBA_NXZ - 00073 0f b6 c0 movzx eax, al - 00076 85 c0 test eax, eax - 00078 75 10 jne SHORT $LN2@sentry - -; 94 : _Ok = false; - - 0007a 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 00081 c6 40 08 00 mov BYTE PTR [rax+8], 0 - -; 95 : return; - - 00085 e9 81 00 00 00 jmp $LN1@sentry -$LN2@sentry: - -; 96 : } -; 97 : -; 98 : const auto _Tied = _Ostr.tie(); - - 0008a 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00091 48 8b 00 mov rax, QWORD PTR [rax] - 00094 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00098 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 0009f 48 03 c8 add rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 8b c8 mov rcx, rax - 000a8 ff 15 00 00 00 - 00 call QWORD PTR __imp_?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ - 000ae 48 89 45 08 mov QWORD PTR _Tied$[rbp], rax - -; 99 : if (!_Tied || _Tied == &_Ostr) { - - 000b2 48 83 7d 08 00 cmp QWORD PTR _Tied$[rbp], 0 - 000b7 74 0d je SHORT $LN4@sentry - 000b9 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000c0 48 39 45 08 cmp QWORD PTR _Tied$[rbp], rax - 000c4 75 0d jne SHORT $LN3@sentry -$LN4@sentry: - -; 100 : _Ok = true; - - 000c6 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 000cd c6 40 08 01 mov BYTE PTR [rax+8], 1 - -; 101 : return; - - 000d1 eb 38 jmp SHORT $LN1@sentry -$LN3@sentry: - -; 102 : } -; 103 : -; 104 : -; 105 : _Tied->flush(); - - 000d3 48 8b 4d 08 mov rcx, QWORD PTR _Tied$[rbp] - 000d7 ff 15 00 00 00 - 00 call QWORD PTR __imp_?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ - -; 106 : _Ok = _Ostr.good(); // store test only after flushing tie - - 000dd 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000e4 48 8b 00 mov rax, QWORD PTR [rax] - 000e7 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 000eb 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 000f2 48 03 c8 add rcx, rax - 000f5 48 8b c1 mov rax, rcx - 000f8 48 8b c8 mov rcx, rax - 000fb ff 15 00 00 00 - 00 call QWORD PTR __imp_?good@ios_base@std@@QEBA_NXZ - 00101 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00108 88 41 08 mov BYTE PTR [rcx+8], al -$LN1@sentry: + 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 -; 107 : } +; 265 : } +; 266 : } - 0010b 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00119 5f pop rdi - 0011a 5d pop rbp - 0011b c3 ret 0 -??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ENDP ; std::basic_ostream >::sentry::sentry + 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 -; COMDAT text$x -text$x SEGMENT -_Tied$ = 8 -this$ = 256 -_Ostr$ = 264 -?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA PROC ; `std::basic_ostream >::sentry::sentry'::`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 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0001b e8 00 00 00 00 call ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::_Sentry_base::~_Sentry_base - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA ENDP ; `std::basic_ostream >::sentry::sentry'::`1'::dtor$0 -text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT text$x -text$x SEGMENT -_Tied$ = 8 -this$ = 256 -_Ostr$ = 264 -?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA PROC ; `std::basic_ostream >::sentry::sentry'::`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 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0001b e8 00 00 00 00 call ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::_Sentry_base::~_Sentry_base - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA ENDP ; `std::basic_ostream >::sentry::sentry'::`1'::dtor$0 -text$x ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream -; COMDAT ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ +; 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 -_Rdbuf$ = 8 -tv72 = 216 -this$ = 256 -??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ PROC ; std::basic_ostream >::_Sentry_base::~_Sentry_base, COMDAT - -; 78 : __CLR_OR_THIS_CALL ~_Sentry_base() noexcept { // destroy after unlocking - -$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 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode +_First$ = 224 +_Last$ = 232 +_Al$ = 240 +??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z PROC ; std::_Destroy_range >, COMDAT -; 79 : const auto _Rdbuf = _Myostr.rdbuf(); +; 945 : _Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept { - 00036 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8b 00 mov rax, QWORD PTR [rax] - 00040 48 89 85 d8 00 - 00 00 mov QWORD PTR tv72[rbp], rax - 00047 48 8b 85 d8 00 - 00 00 mov rax, QWORD PTR tv72[rbp] - 0004e 48 8b 00 mov rax, QWORD PTR [rax] - 00051 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00055 48 8b 8d d8 00 - 00 00 mov rcx, QWORD PTR tv72[rbp] - 0005c 48 03 c8 add rcx, rax - 0005f 48 8b c1 mov rax, rcx - 00062 48 8b c8 mov rcx, rax - 00065 ff 15 00 00 00 - 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 0006b 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax - -; 80 : if (_Rdbuf) { - - 0006f 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 - 00074 74 0f je SHORT $LN2@Sentry_bas - -; 81 : _Rdbuf->_Unlock(); - - 00076 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] - 0007a 48 8b 00 mov rax, QWORD PTR [rax] - 0007d 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] - 00081 ff 50 10 call QWORD PTR [rax+16] - 00084 90 npad 1 -$LN2@Sentry_bas: - -; 82 : } -; 83 : } - - 00085 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 0008c 5f pop rdi - 0008d 5d pop rbp - 0008e c3 ret 0 -??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ENDP ; std::basic_ostream >::_Sentry_base::~_Sentry_base +$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, _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 > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream -; COMDAT ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z +; 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 -_Rdbuf$ = 8 -tv73 = 216 -this$ = 256 -_Ostr$ = 264 -??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z PROC ; std::basic_ostream >::_Sentry_base::_Sentry_base, COMDAT +_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 >, COMDAT -; 71 : __CLR_OR_THIS_CALL _Sentry_base(basic_ostream& _Ostr) : _Myostr(_Ostr) { // lock the stream buffer, if there +; 998 : _CONSTEXPR20_DYNALLOC void _Delete_plain_internal(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { -$LN4: +$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 + 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 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00049 48 89 08 mov QWORD PTR [rax], rcx + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 72 : const auto _Rdbuf = _Myostr.rdbuf(); +; 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); - 0004c 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 00053 48 8b 00 mov rax, QWORD PTR [rax] - 00056 48 89 85 d8 00 - 00 00 mov QWORD PTR tv73[rbp], rax - 0005d 48 8b 85 d8 00 - 00 00 mov rax, QWORD PTR tv73[rbp] - 00064 48 8b 00 mov rax, QWORD PTR [rax] - 00067 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 0006b 48 8b 8d d8 00 - 00 00 mov rcx, QWORD PTR tv73[rbp] - 00072 48 03 c8 add rcx, rax - 00075 48 8b c1 mov rax, rcx - 00078 48 8b c8 mov rcx, rax - 0007b ff 15 00 00 00 - 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 00081 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax - -; 73 : if (_Rdbuf) { - - 00085 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 - 0008a 74 0e je SHORT $LN2@Sentry_bas - -; 74 : _Rdbuf->_Lock(); - - 0008c 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] - 00090 48 8b 00 mov rax, QWORD PTR [rax] - 00093 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] - 00097 ff 50 08 call QWORD PTR [rax+8] -$LN2@Sentry_bas: - -; 75 : } -; 76 : } - - 0009a 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 000a1 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 000a8 5f pop rdi - 000a9 5d pop rbp - 000aa c3 ret 0 -??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ENDP ; std::basic_ostream >::_Sentry_base::_Sentry_base + 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 > + +; 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 > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iomanip -; COMDAT ??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z +; 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 -tv79 = 192 -_Ostr$ = 240 -_Manip$ = 248 -??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z PROC ; std::operator<<,char>, COMDAT +_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, COMDAT -; 49 : const _Fillobj<_Elem2>& _Manip) { // set fill character in output stream +; 614 : conjunction_v, 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 f8 00 - 00 00 sub rsp, 248 ; 000000f8H + 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 8b fc mov rdi, rsp - 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 50 : static_assert(is_same_v<_Elem, _Elem2>, "wrong character type for setfill"); -; 51 : -; 52 : _Ostr.fill(_Manip._Fill); - - 0003b 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00042 48 8b 00 mov rax, QWORD PTR [rax] - 00045 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00049 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00050 48 03 c8 add rcx, rax - 00053 48 8b c1 mov rax, rcx - 00056 48 89 85 c0 00 - 00 00 mov QWORD PTR tv79[rbp], rax - 0005d 48 8b 85 f8 00 - 00 00 mov rax, QWORD PTR _Manip$[rbp] - 00064 0f b6 10 movzx edx, BYTE PTR [rax] - 00067 48 8b 8d c0 00 - 00 00 mov rcx, QWORD PTR tv79[rbp] - 0006e ff 15 00 00 00 - 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z - -; 53 : return _Ostr; - - 00074 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - -; 54 : } - - 0007b 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 00082 5f pop rdi - 00083 5d pop rbp - 00084 c3 ret 0 -??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z ENDP ; std::operator<<,char> -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iomanip -; COMDAT ??0?$_Fillobj@D@std@@QEAA@D@Z -_TEXT SEGMENT -this$ = 224 -_Ch$ = 232 -??0?$_Fillobj@D@std@@QEAA@D@Z PROC ; std::_Fillobj::_Fillobj, COMDAT + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7ADD299_utility + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 27 : _Fillobj(_Elem _Ch) : _Fill(_Ch) {} +; 615 : // assign _New_val to _Val, return previous _Val +; 616 : _Ty _Old_val = static_cast<_Ty&&>(_Val); -$LN3: - 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl - 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 fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip - 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003a 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00041 0f b6 8d e8 00 - 00 00 movzx ecx, BYTE PTR _Ch$[rbp] - 00048 88 08 mov BYTE PTR [rax], cl - 0004a 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00051 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00058 5f pop rdi - 00059 5d pop rbp - 0005a c3 ret 0 -??0?$_Fillobj@D@std@@QEAA@D@Z ENDP ; std::_Fillobj::_Fillobj -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iomanip -; COMDAT ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z -_TEXT SEGMENT -__$ReturnUdt$ = 224 -_Ch$ = 232 -??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z PROC ; std::setfill, COMDAT + 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 -; 34 : _NODISCARD _Fillobj<_Elem> setfill(_Elem _Ch) { +; 617 : _Val = static_cast<_Other&&>(_New_val); -$LN3: - 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl - 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 fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip - 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 35 : return _Fillobj<_Elem>(_Ch); - - 0003a 0f b6 95 e8 00 - 00 00 movzx edx, BYTE PTR _Ch$[rbp] - 00041 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] - 00048 e8 00 00 00 00 call ??0?$_Fillobj@D@std@@QEAA@D@Z ; std::_Fillobj::_Fillobj - 0004d 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] - -; 36 : } - - 00054 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0005b 5f pop rdi - 0005c 5d pop rbp - 0005d c3 ret 0 -??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ENDP ; std::setfill + 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 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iomanip -; COMDAT ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z +; 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 -tv79 = 192 -_Ostr$ = 240 -_Manip$ = 248 -??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z PROC ; std::operator<<,__int64>, COMDAT +this$ = 224 +__formal$ = 232 +??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z PROC ; std::allocator::allocator, COMDAT -; 423 : const _Smanip<_Arg>& _Manip) { // insert by calling function with output stream and argument +; 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 f8 00 - 00 00 sub rsp, 248 ; 000000f8H + 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 8b fc mov rdi, rsp - 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 424 : (*_Manip._Pfun)(_Ostr, _Manip._Manarg); - - 0003b 48 8b 85 f8 00 - 00 00 mov rax, QWORD PTR _Manip$[rbp] - 00042 48 8b 00 mov rax, QWORD PTR [rax] - 00045 48 89 85 c0 00 - 00 00 mov QWORD PTR tv79[rbp], rax - 0004c 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00053 48 8b 00 mov rax, QWORD PTR [rax] - 00056 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 0005a 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00061 48 03 c8 add rcx, rax - 00064 48 8b c1 mov rax, rcx - 00067 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR _Manip$[rbp] - 0006e 48 8b 51 08 mov rdx, QWORD PTR [rcx+8] - 00072 48 8b c8 mov rcx, rax - 00075 ff 95 c0 00 00 - 00 call QWORD PTR tv79[rbp] - -; 425 : return _Ostr; - - 0007b 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - -; 426 : } - - 00082 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 00089 5f pop rdi - 0008a 5d pop rbp - 0008b c3 ret 0 -??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ENDP ; std::operator<<,__int64> + 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::allocator _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream -; COMDAT ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp +; COMDAT main _TEXT SEGMENT -_State$ = 4 -_Ok$ = 40 -_Pad$4 = 88 -$T5 = 308 -$T6 = 340 -$T7 = 372 -$T8 = 404 -$T9 = 436 -$T10 = 468 -$T11 = 504 -tv65 = 516 -tv305 = 520 -tv303 = 520 -tv300 = 520 -tv295 = 520 -tv281 = 520 -tv266 = 520 -tv130 = 520 -tv245 = 528 -tv204 = 528 -tv179 = 528 -tv306 = 536 -tv304 = 536 -tv301 = 536 -tv243 = 537 -tv177 = 537 -tv307 = 540 -tv302 = 540 -__$ArrayPad$ = 544 -_Ostr$ = 592 -_Ch$ = 600 -??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z PROC ; std::operator<< >, COMDAT - -; 780 : basic_ostream& _Ostr, char _Ch) { // insert a char into char stream - -$LN23: - 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl - 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00009 55 push rbp - 0000a 57 push rdi - 0000b 48 81 ec 58 02 - 00 00 sub rsp, 600 ; 00000258H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 96 00 00 00 mov ecx, 150 ; 00000096H - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 78 - 02 00 00 mov rcx, QWORD PTR [rsp+632] - 0002e 48 8b 05 00 00 +Block$ = 8 +NotTaken$ = 88 +Taken$ = 168 +tv135 = 420 +tv133 = 424 +__$ArrayPad$ = 432 +main PROC ; COMDAT + +; 44 : { + +$LN6: + 00000 40 55 push rbp + 00002 57 push rdi + 00003 48 81 ec e8 01 + 00 00 sub rsp, 488 ; 000001e8H + 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0000f 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00014 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 00019 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001e f3 ab rep stosd + 00020 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00035 48 33 c5 xor rax, rbp - 00038 48 89 85 20 02 + 00027 48 33 c5 xor rax, rbp + 0002a 48 89 85 b0 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream - 00046 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 781 : using _Elem = char; -; 782 : using _Myos = basic_ostream<_Elem, _Traits>; -; 783 : -; 784 : ios_base::iostate _State = ios_base::goodbit; - - 0004b c7 45 04 00 00 - 00 00 mov DWORD PTR _State$[rbp], 0 - -; 785 : const typename _Myos::sentry _Ok(_Ostr); - - 00052 48 8b 95 50 02 - 00 00 mov rdx, QWORD PTR _Ostr$[rbp] - 00059 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] - 0005d e8 00 00 00 00 call ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::sentry::sentry - 00062 90 npad 1 - -; 786 : -; 787 : if (_Ok) { // state okay, insert - - 00063 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] - 00067 e8 00 00 00 00 call ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ ; std::basic_ostream >::sentry::operator bool - 0006c 0f b6 c0 movzx eax, al - 0006f 85 c0 test eax, eax - 00071 0f 84 1d 03 00 - 00 je $LN8@operator - -; 788 : streamsize _Pad = _Ostr.width() <= 1 ? 0 : _Ostr.width() - 1; - - 00077 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0007e 48 8b 00 mov rax, QWORD PTR [rax] - 00081 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00085 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 0008c 48 03 c8 add rcx, rax - 0008f 48 8b c1 mov rax, rcx - 00092 48 8b c8 mov rcx, rax - 00095 ff 15 00 00 00 - 00 call QWORD PTR __imp_?width@ios_base@std@@QEBA_JXZ - 0009b 48 83 f8 01 cmp rax, 1 - 0009f 7f 0d jg SHORT $LN15@operator - 000a1 48 c7 85 08 02 - 00 00 00 00 00 - 00 mov QWORD PTR tv130[rbp], 0 - 000ac eb 2e jmp SHORT $LN16@operator -$LN15@operator: - 000ae 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000b5 48 8b 00 mov rax, QWORD PTR [rax] - 000b8 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 000bc 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 000c3 48 03 c8 add rcx, rax - 000c6 48 8b c1 mov rax, rcx - 000c9 48 8b c8 mov rcx, rax - 000cc ff 15 00 00 00 - 00 call QWORD PTR __imp_?width@ios_base@std@@QEBA_JXZ - 000d2 48 ff c8 dec rax - 000d5 48 89 85 08 02 - 00 00 mov QWORD PTR tv130[rbp], rax -$LN16@operator: - 000dc 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR tv130[rbp] - 000e3 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax - -; 789 : -; 790 : _TRY_IO_BEGIN -; 791 : if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left) { - - 000e7 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000ee 48 8b 00 mov rax, QWORD PTR [rax] - 000f1 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 000f5 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 000fc 48 03 c8 add rcx, rax - 000ff 48 8b c1 mov rax, rcx - 00102 48 8b c8 mov rcx, rax - 00105 ff 15 00 00 00 - 00 call QWORD PTR __imp_?flags@ios_base@std@@QEBAHXZ - 0010b 89 85 04 02 00 - 00 mov DWORD PTR tv65[rbp], eax - 00111 8b 85 04 02 00 - 00 mov eax, DWORD PTR tv65[rbp] - 00117 25 c0 01 00 00 and eax, 448 ; 000001c0H - 0011c 83 f8 40 cmp eax, 64 ; 00000040H - 0011f 0f 84 eb 00 00 - 00 je $LN10@operator - -; 792 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on left - - 00125 eb 0b jmp SHORT $LN4@operator -$LN2@operator: - 00127 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] - 0012b 48 ff c8 dec rax - 0012e 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax -$LN4@operator: - 00132 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 - 00136 0f 85 d4 00 00 - 00 jne $LN10@operator - 0013c 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 - 00141 0f 8e c9 00 00 - 00 jle $LN10@operator - -; 793 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { - - 00147 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0014e 48 8b 00 mov rax, QWORD PTR [rax] - 00151 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00155 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 0015c 48 03 c8 add rcx, rax - 0015f 48 8b c1 mov rax, rcx - 00162 48 8b c8 mov rcx, rax - 00165 ff 15 00 00 00 - 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 0016b 48 89 85 08 02 - 00 00 mov QWORD PTR tv300[rbp], rax - 00172 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR tv300[rbp] - 00179 48 89 85 10 02 - 00 00 mov QWORD PTR tv179[rbp], rax - 00180 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00187 48 8b 00 mov rax, QWORD PTR [rax] - 0018a 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 0018e 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 8b c8 mov rcx, rax - 0019e ff 15 00 00 00 - 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ - 001a4 88 85 18 02 00 - 00 mov BYTE PTR tv301[rbp], al - 001aa 0f b6 85 18 02 - 00 00 movzx eax, BYTE PTR tv301[rbp] - 001b1 88 85 19 02 00 - 00 mov BYTE PTR tv177[rbp], al - 001b7 0f b6 95 19 02 - 00 00 movzx edx, BYTE PTR tv177[rbp] - 001be 48 8b 8d 10 02 - 00 00 mov rcx, QWORD PTR tv179[rbp] - 001c5 ff 15 00 00 00 - 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z - 001cb 89 85 1c 02 00 - 00 mov DWORD PTR tv302[rbp], eax - 001d1 8b 85 1c 02 00 - 00 mov eax, DWORD PTR tv302[rbp] - 001d7 89 85 34 01 00 - 00 mov DWORD PTR $T5[rbp], eax - 001dd e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 001e2 89 85 54 01 00 - 00 mov DWORD PTR $T6[rbp], eax - 001e8 48 8d 95 34 01 - 00 00 lea rdx, QWORD PTR $T5[rbp] - 001ef 48 8d 8d 54 01 - 00 00 lea rcx, QWORD PTR $T6[rbp] - 001f6 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 001fb 0f b6 c0 movzx eax, al - 001fe 85 c0 test eax, eax - 00200 74 09 je SHORT $LN11@operator - -; 794 : _State |= ios_base::badbit; - - 00202 8b 45 04 mov eax, DWORD PTR _State$[rbp] - 00205 83 c8 04 or eax, 4 - 00208 89 45 04 mov DWORD PTR _State$[rbp], eax -$LN11@operator: - -; 795 : } -; 796 : } - - 0020b e9 17 ff ff ff jmp $LN2@operator -$LN10@operator: - -; 797 : } -; 798 : -; 799 : if (_State == ios_base::goodbit && _Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ch))) { - - 00210 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 - 00214 0f 85 8d 00 00 - 00 jne $LN12@operator - 0021a 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00221 48 8b 00 mov rax, QWORD PTR [rax] - 00224 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00228 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 0022f 48 03 c8 add rcx, rax - 00232 48 8b c1 mov rax, rcx - 00235 48 8b c8 mov rcx, rax - 00238 ff 15 00 00 00 - 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 0023e 48 89 85 08 02 - 00 00 mov QWORD PTR tv303[rbp], rax - 00245 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR tv303[rbp] - 0024c 48 89 85 10 02 - 00 00 mov QWORD PTR tv204[rbp], rax - 00253 0f b6 95 58 02 - 00 00 movzx edx, BYTE PTR _Ch$[rbp] - 0025a 48 8b 8d 10 02 - 00 00 mov rcx, QWORD PTR tv204[rbp] - 00261 ff 15 00 00 00 - 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z - 00267 89 85 18 02 00 - 00 mov DWORD PTR tv304[rbp], eax - 0026d 8b 85 18 02 00 - 00 mov eax, DWORD PTR tv304[rbp] - 00273 89 85 74 01 00 - 00 mov DWORD PTR $T7[rbp], eax - 00279 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 0027e 89 85 94 01 00 - 00 mov DWORD PTR $T8[rbp], eax - 00284 48 8d 95 74 01 - 00 00 lea rdx, QWORD PTR $T7[rbp] - 0028b 48 8d 8d 94 01 - 00 00 lea rcx, QWORD PTR $T8[rbp] - 00292 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 00297 0f b6 c0 movzx eax, al - 0029a 85 c0 test eax, eax - 0029c 74 09 je SHORT $LN12@operator - -; 800 : _State |= ios_base::badbit; - - 0029e 8b 45 04 mov eax, DWORD PTR _State$[rbp] - 002a1 83 c8 04 or eax, 4 - 002a4 89 45 04 mov DWORD PTR _State$[rbp], eax -$LN12@operator: - -; 801 : } -; 802 : -; 803 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on right - - 002a7 eb 0b jmp SHORT $LN7@operator -$LN5@operator: - 002a9 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] - 002ad 48 ff c8 dec rax - 002b0 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax -$LN7@operator: - 002b4 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 - 002b8 0f 85 d4 00 00 - 00 jne $LN6@operator - 002be 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 - 002c3 0f 8e c9 00 00 - 00 jle $LN6@operator - -; 804 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { - - 002c9 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 002d0 48 8b 00 mov rax, QWORD PTR [rax] - 002d3 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 002d7 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 002de 48 03 c8 add rcx, rax - 002e1 48 8b c1 mov rax, rcx - 002e4 48 8b c8 mov rcx, rax - 002e7 ff 15 00 00 00 - 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 002ed 48 89 85 08 02 - 00 00 mov QWORD PTR tv305[rbp], rax - 002f4 48 8b 85 08 02 - 00 00 mov rax, QWORD PTR tv305[rbp] - 002fb 48 89 85 10 02 - 00 00 mov QWORD PTR tv245[rbp], rax - 00302 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00309 48 8b 00 mov rax, QWORD PTR [rax] - 0030c 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00310 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00317 48 03 c8 add rcx, rax - 0031a 48 8b c1 mov rax, rcx - 0031d 48 8b c8 mov rcx, rax - 00320 ff 15 00 00 00 - 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ - 00326 88 85 18 02 00 - 00 mov BYTE PTR tv306[rbp], al - 0032c 0f b6 85 18 02 - 00 00 movzx eax, BYTE PTR tv306[rbp] - 00333 88 85 19 02 00 - 00 mov BYTE PTR tv243[rbp], al - 00339 0f b6 95 19 02 - 00 00 movzx edx, BYTE PTR tv243[rbp] - 00340 48 8b 8d 10 02 - 00 00 mov rcx, QWORD PTR tv245[rbp] - 00347 ff 15 00 00 00 - 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z - 0034d 89 85 1c 02 00 - 00 mov DWORD PTR tv307[rbp], eax - 00353 8b 85 1c 02 00 - 00 mov eax, DWORD PTR tv307[rbp] - 00359 89 85 b4 01 00 - 00 mov DWORD PTR $T9[rbp], eax - 0035f e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 00364 89 85 d4 01 00 - 00 mov DWORD PTR $T10[rbp], eax - 0036a 48 8d 95 b4 01 - 00 00 lea rdx, QWORD PTR $T9[rbp] - 00371 48 8d 8d d4 01 - 00 00 lea rcx, QWORD PTR $T10[rbp] - 00378 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 0037d 0f b6 c0 movzx eax, al - 00380 85 c0 test eax, eax - 00382 74 09 je SHORT $LN13@operator - -; 805 : _State |= ios_base::badbit; - - 00384 8b 45 04 mov eax, DWORD PTR _State$[rbp] - 00387 83 c8 04 or eax, 4 - 0038a 89 45 04 mov DWORD PTR _State$[rbp], eax -$LN13@operator: - -; 806 : } -; 807 : } - - 0038d e9 17 ff ff ff jmp $LN5@operator -$LN6@operator: - 00392 eb 00 jmp SHORT $LN8@operator -$LN21@operator: -$LN8@operator: - -; 808 : _CATCH_IO_(ios_base, _Ostr) -; 809 : } -; 810 : -; 811 : _Ostr.width(0); - - 00394 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0039b 48 8b 00 mov rax, QWORD PTR [rax] - 0039e 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 003a2 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 003a9 48 03 c8 add rcx, rax - 003ac 48 8b c1 mov rax, rcx - 003af 48 89 85 08 02 - 00 00 mov QWORD PTR tv281[rbp], rax - 003b6 33 d2 xor edx, edx - 003b8 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR tv281[rbp] - 003bf ff 15 00 00 00 - 00 call QWORD PTR __imp_?width@ios_base@std@@QEAA_J_J@Z - -; 812 : _Ostr.setstate(_State); - - 003c5 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 003cc 48 8b 00 mov rax, QWORD PTR [rax] - 003cf 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 003d3 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 003da 48 03 c8 add rcx, rax - 003dd 48 8b c1 mov rax, rcx - 003e0 48 89 85 08 02 - 00 00 mov QWORD PTR tv295[rbp], rax - 003e7 45 33 c0 xor r8d, r8d - 003ea 8b 55 04 mov edx, DWORD PTR _State$[rbp] - 003ed 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR tv295[rbp] - 003f4 ff 15 00 00 00 - 00 call QWORD PTR __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z - -; 813 : return _Ostr; - - 003fa 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00401 48 89 85 f8 01 - 00 00 mov QWORD PTR $T11[rbp], rax - 00408 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] - 0040c e8 00 00 00 00 call ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::sentry::~sentry - 00411 48 8b 85 f8 01 - 00 00 mov rax, QWORD PTR $T11[rbp] - -; 814 : } - - 00418 48 8b f8 mov rdi, rax - 0041b 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0041f 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$rtcFrameData - 00426 e8 00 00 00 00 call _RTC_CheckStackVars - 0042b 48 8b c7 mov rax, rdi - 0042e 48 8b 8d 20 02 + 00031 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__386EB99F_Main@cpp + 00038 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 45 : XedTablesInit(); + + 0003d e8 00 00 00 00 call xed_tables_init + +; 46 : srand(time(NULL)); + + 00042 33 c9 xor ecx, ecx + 00044 e8 00 00 00 00 call time + 00049 8b c8 mov ecx, eax + 0004b ff 15 00 00 00 + 00 call QWORD PTR __imp_srand + +; 47 : +; 48 : +; 49 : NATIVE_CODE_BLOCK Block; + + 00051 48 8d 4d 08 lea rcx, QWORD PTR Block$[rbp] + 00055 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 0005a 90 npad 1 + +; 50 : NcDisassemble(&Block, TestBuffer, TestBufferSize); + + 0005b 44 8b 05 00 00 + 00 00 mov r8d, DWORD PTR ?TestBufferSize@@3KA ; TestBufferSize + 00062 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?TestBuffer@@3PAEA ; TestBuffer + 00069 48 8d 4d 08 lea rcx, QWORD PTR Block$[rbp] + 0006d e8 00 00 00 00 call ?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z ; NcDisassemble + +; 51 : NATIVE_CODE_BLOCK NotTaken; + + 00072 48 8d 4d 58 lea rcx, QWORD PTR NotTaken$[rbp] + 00076 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 0007b 90 npad 1 + +; 52 : NATIVE_CODE_BLOCK Taken; + + 0007c 48 8d 8d a8 00 + 00 00 lea rcx, QWORD PTR Taken$[rbp] + 00083 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 00088 90 npad 1 + +; 53 : printf("\n\nOriginal\n"); + + 00089 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0M@INKCCKOG@?6?6Original?6@ + 00090 e8 00 00 00 00 call printf + +; 54 : NcDebugPrint(&Block); + + 00095 48 8d 4d 08 lea rcx, QWORD PTR Block$[rbp] + 00099 e8 00 00 00 00 call ?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDebugPrint + +; 55 : ObfCreateOpaqueBranches(Block.Start->Next, Block.Start->Next->Next->Next->Next, &NotTaken, &Taken); + + 0009e 48 8b 45 08 mov rax, QWORD PTR Block$[rbp] + 000a2 48 8b 00 mov rax, QWORD PTR [rax] + 000a5 48 8b 00 mov rax, QWORD PTR [rax] + 000a8 48 8b 00 mov rax, QWORD PTR [rax] + 000ab 4c 8d 8d a8 00 + 00 00 lea r9, QWORD PTR Taken$[rbp] + 000b2 4c 8d 45 58 lea r8, QWORD PTR NotTaken$[rbp] + 000b6 48 8b 10 mov rdx, QWORD PTR [rax] + 000b9 48 8b 45 08 mov rax, QWORD PTR Block$[rbp] + 000bd 48 8b 08 mov rcx, QWORD PTR [rax] + 000c0 e8 00 00 00 00 call ?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z ; ObfCreateOpaqueBranches + +; 56 : //printf("\n\nNotTaken\n"); +; 57 : //NcDebugPrint(&NotTaken); +; 58 : //printf("\n\nTaken\n"); +; 59 : //NcDebugPrint(&Taken); +; 60 : //printf("\n\nCombined\n"); +; 61 : ObfCombineOpaqueBranches(&NotTaken, &Taken, NcGenUnusedLabelId(&Block), NcGenUnusedLabelId(&Block)); + + 000c5 48 8d 4d 08 lea rcx, QWORD PTR Block$[rbp] + 000c9 e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId + 000ce 89 85 a4 01 00 + 00 mov DWORD PTR tv135[rbp], eax + 000d4 48 8d 4d 08 lea rcx, QWORD PTR Block$[rbp] + 000d8 e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId + 000dd 89 85 a8 01 00 + 00 mov DWORD PTR tv133[rbp], eax + 000e3 44 8b 8d a4 01 + 00 00 mov r9d, DWORD PTR tv135[rbp] + 000ea 44 8b 85 a8 01 + 00 00 mov r8d, DWORD PTR tv133[rbp] + 000f1 48 8d 95 a8 00 + 00 00 lea rdx, QWORD PTR Taken$[rbp] + 000f8 48 8d 4d 58 lea rcx, QWORD PTR NotTaken$[rbp] + 000fc e8 00 00 00 00 call ?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z ; ObfCombineOpaqueBranches + +; 62 : ObfInsertOpaqueBranchBlock(Block.Start->Next, Block.Start->Next->Next->Next->Next, &NotTaken); + + 00101 48 8b 45 08 mov rax, QWORD PTR Block$[rbp] + 00105 48 8b 00 mov rax, QWORD PTR [rax] + 00108 48 8b 00 mov rax, QWORD PTR [rax] + 0010b 48 8b 00 mov rax, QWORD PTR [rax] + 0010e 4c 8d 45 58 lea r8, QWORD PTR NotTaken$[rbp] + 00112 48 8b 10 mov rdx, QWORD PTR [rax] + 00115 48 8b 45 08 mov rax, QWORD PTR Block$[rbp] + 00119 48 8b 08 mov rcx, QWORD PTR [rax] + 0011c e8 00 00 00 00 call ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfInsertOpaqueBranchBlock + +; 63 : printf("\n\nNew\n"); + + 00121 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_06CHBCCLOP@?6?6New?6@ + 00128 e8 00 00 00 00 call printf + +; 64 : NcDebugPrint(&Block); + + 0012d 48 8d 4d 08 lea rcx, QWORD PTR Block$[rbp] + 00131 e8 00 00 00 00 call ?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDebugPrint + 00136 90 npad 1 + +; 65 : +; 66 : +; 67 : +; 68 : //PNATIVE_CODE_LINK Return1776 = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, meme1, sizeof(meme1)); +; 69 : //PNATIVE_CODE_LINK RetInst = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, meme2, sizeof(meme2)); +; 70 : //PNATIVE_CODE_BLOCK Pre1 = JitEmitPreRipMov(Return1776); +; 71 : //PNATIVE_CODE_BLOCK Post1 = JitEmitPostRipMov(Return1776); +; 72 : //PNATIVE_CODE_BLOCK Pre2 = JitEmitPreRipMov(RetInst); +; 73 : //PNATIVE_CODE_BLOCK Post2 = JitEmitPostRipMov(RetInst); +; 74 : +; 75 : //NcAppendToBlock(Pre1, Return1776); +; 76 : //NcInsertBlockAfter(Pre1->End, Post1, 0); +; 77 : //Pre1->End = Post1->End; +; 78 : //NcInsertBlockAfter(Pre1->End, Pre2, 0); +; 79 : //Pre1->End = Pre2->End; +; 80 : //NcAppendToBlock(Pre1, RetInst); +; 81 : //NcInsertBlockAfter(Pre1->End, Post2, 0); +; 82 : //Pre1->End = Post2->End; +; 83 : +; 84 : ///*Pre->Start = Return1776; +; 85 : //Pre->End = Return1776;*/ +; 86 : +; 87 : //for (ULONG i = 0; i < Return1776->RawDataSize; i++) +; 88 : // Return1776->RawData[i] = (UCHAR)rand(); +; 89 : //for (ULONG i = 0; i < RetInst->RawDataSize; i++) +; 90 : // RetInst->RawData[i] = (UCHAR)rand(); +; 91 : +; 92 : +; 93 : +; 94 : //ULONG AsmLen; +; 95 : //PVOID Asm = NcAssemble(Pre1, &AsmLen); +; 96 : //PUCHAR Tb = (PUCHAR)Asm; +; 97 : //for (uint32_t i = 0; i < AsmLen; i++) +; 98 : //{ +; 99 : // std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)Tb[i] << ' '; +; 100 : //} +; 101 : +; 102 : //system("pause"); +; 103 : +; 104 : //typedef ULONG64(*FnGet1776)(); +; 105 : //FnGet1776 ExecBuffer = (FnGet1776)MakeExecutableBuffer(Asm, AsmLen); +; 106 : //if (ExecBuffer) +; 107 : //{ +; 108 : // printf("The numba was: %X\n", ExecBuffer()); +; 109 : // printf("The numba was: %X\n", ExecBuffer()); +; 110 : +; 111 : // printf("The numba was: %X\n", ExecBuffer()); +; 112 : +; 113 : // printf("The numba was: %X\n", ExecBuffer()); +; 114 : +; 115 : //} +; 116 : +; 117 : +; 118 : //NcDebugPrint(Post); +; 119 : +; 120 : +; 121 : +; 122 : /*NATIVE_CODE_BLOCK Block; +; 123 : NcDisassemble(&Block, TestBuffer, TestBufferSize); +; 124 : PNATIVE_CODE_LINK NewLink = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, meme1, sizeof(meme1)); +; 125 : +; 126 : NcInsertLinkBefore(Block.End->Prev->Prev->Prev->Prev, NewLink); +; 127 : ULONG AssembledSize; +; 128 : PVOID AssembledBlock = NcAssemble(&Block, &AssembledSize); +; 129 : if (!AssembledBlock || !AssembledSize) +; 130 : { +; 131 : printf("Something failed nicka.\n"); +; 132 : system("pause"); +; 133 : return -1; +; 134 : } +; 135 : PUCHAR Tb = (PUCHAR)AssembledBlock; +; 136 : for (uint32_t i = 0; i < AssembledSize; i++) +; 137 : { +; 138 : std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)Tb[i] << ' '; +; 139 : } +; 140 : */ +; 141 : +; 142 : +; 143 : //PNATIVE_CODE_BLOCK OpaqueBranch = ObfGenOpaqueBranch(Block.Start, Block.End); +; 144 : //NcDebugPrint(OpaqueBranch); +; 145 : +; 146 : +; 147 : +; 148 : /*NATIVE_CODE_LINK T; +; 149 : T.RawDataSize = 10; +; 150 : T.RawData = new UCHAR[10]; +; 151 : memset(T.RawData, 0xAA, 10); +; 152 : JIT_BITWISE_DATA Data; +; 153 : RtlSecureZeroMemory(&Data, sizeof(JIT_BITWISE_DATA)); +; 154 : PNATIVE_CODE_BLOCK NewBlock = JitEmitPreRipMov(&T); +; 155 : if (NewBlock) +; 156 : { +; 157 : printf("\n"); +; 158 : NcDebugPrint(NewBlock); +; 159 : printf("\n"); +; 160 : NcPrintBlockCode(NewBlock); +; 161 : } +; 162 : system("pause");*/ +; 163 : +; 164 : } + + 00137 48 8d 8d a8 00 + 00 00 lea rcx, QWORD PTR Taken$[rbp] + 0013e e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 00143 90 npad 1 + 00144 48 8d 4d 58 lea rcx, QWORD PTR NotTaken$[rbp] + 00148 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 0014d 90 npad 1 + 0014e 48 8d 4d 08 lea rcx, QWORD PTR Block$[rbp] + 00152 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 00157 33 c0 xor eax, eax + 00159 8b f8 mov edi, eax + 0015b 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0015f 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:main$rtcFrameData + 00166 e8 00 00 00 00 call _RTC_CheckStackVars + 0016b 8b c7 mov eax, edi + 0016d 48 8b 8d b0 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00435 48 33 cd xor rcx, rbp - 00438 e8 00 00 00 00 call __security_check_cookie - 0043d 48 8d a5 38 02 - 00 00 lea rsp, QWORD PTR [rbp+568] - 00444 5f pop rdi - 00445 5d pop rbp - 00446 c3 ret 0 -??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z ENDP ; std::operator<< > + 00174 48 33 cd xor rcx, rbp + 00177 e8 00 00 00 00 call __security_check_cookie + 0017c 48 8d a5 c8 01 + 00 00 lea rsp, QWORD PTR [rbp+456] + 00183 5f pop rdi + 00184 5d pop rbp + 00185 c3 ret 0 +main ENDP _TEXT ENDS ; COMDAT text$x text$x SEGMENT -_State$ = 4 -_Ok$ = 40 -_Pad$4 = 88 -$T5 = 308 -$T6 = 340 -$T7 = 372 -$T8 = 404 -$T9 = 436 -$T10 = 468 -$T11 = 504 -tv65 = 516 -tv305 = 520 -tv303 = 520 -tv300 = 520 -tv295 = 520 -tv281 = 520 -tv266 = 520 -tv130 = 520 -tv245 = 528 -tv204 = 528 -tv179 = 528 -tv306 = 536 -tv304 = 536 -tv301 = 536 -tv243 = 537 -tv177 = 537 -tv307 = 540 -tv302 = 540 -__$ArrayPad$ = 544 -_Ostr$ = 592 -_Ch$ = 600 -?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA PROC ; `std::operator<< >'::`1'::dtor$0 +Block$ = 8 +NotTaken$ = 88 +Taken$ = 168 +tv135 = 420 +tv133 = 424 +__$ArrayPad$ = 432 +main$dtor$0 PROC 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 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] - 00018 e8 00 00 00 00 call ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::sentry::~sentry + 00014 48 8d 4d 08 lea rcx, QWORD PTR Block$[rbp] + 00018 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ 0001d 48 83 c4 28 add rsp, 40 ; 00000028H 00021 5f pop rdi 00022 5d pop rbp 00023 c3 ret 0 -?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA ENDP ; `std::operator<< >'::`1'::dtor$0 -text$x ENDS -; COMDAT text$x -text$x SEGMENT -_State$ = 4 -_Ok$ = 40 -_Pad$4 = 88 -$T5 = 308 -$T6 = 340 -$T7 = 372 -$T8 = 404 -$T9 = 436 -$T10 = 468 -$T11 = 504 -tv65 = 516 -tv305 = 520 -tv303 = 520 -tv300 = 520 -tv295 = 520 -tv281 = 520 -tv266 = 520 -tv130 = 520 -tv245 = 528 -tv204 = 528 -tv179 = 528 -tv306 = 536 -tv304 = 536 -tv301 = 536 -tv243 = 537 -tv177 = 537 -tv307 = 540 -tv302 = 540 -__$ArrayPad$ = 544 -_Ostr$ = 592 -_Ch$ = 600 -?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA PROC ; `std::operator<< >'::`1'::catch$1 - -; 808 : _CATCH_IO_(ios_base, _Ostr) - - 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] -__catch$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$0: - 00014 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0001b 48 8b 00 mov rax, QWORD PTR [rax] - 0001e 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00022 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00029 48 03 c8 add rcx, rax - 0002c 48 8b c1 mov rax, rcx - 0002f 48 89 85 08 02 - 00 00 mov QWORD PTR tv266[rbp], rax - 00036 41 b0 01 mov r8b, 1 - 00039 ba 04 00 00 00 mov edx, 4 - 0003e 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR tv266[rbp] - 00045 ff 15 00 00 00 - 00 call QWORD PTR __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z - 0004b 90 npad 1 - 0004c 48 8d 05 00 00 - 00 00 lea rax, $LN21@catch$1 - 00053 48 83 c4 28 add rsp, 40 ; 00000028H - 00057 5f pop rdi - 00058 5d pop rbp - 00059 c3 ret 0 - 0005a cc int 3 -?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA ENDP ; `std::operator<< >'::`1'::catch$1 +main$dtor$0 ENDP text$x ENDS -; Function compile flags: /Odtp /RTCsu /ZI ; COMDAT text$x text$x SEGMENT -_State$ = 4 -_Ok$ = 40 -_Pad$4 = 88 -$T5 = 308 -$T6 = 340 -$T7 = 372 -$T8 = 404 -$T9 = 436 -$T10 = 468 -$T11 = 504 -tv65 = 516 -tv305 = 520 -tv303 = 520 -tv300 = 520 -tv295 = 520 -tv281 = 520 -tv266 = 520 -tv130 = 520 -tv245 = 528 -tv204 = 528 -tv179 = 528 -tv306 = 536 -tv304 = 536 -tv301 = 536 -tv243 = 537 -tv177 = 537 -tv307 = 540 -tv302 = 540 -__$ArrayPad$ = 544 -_Ostr$ = 592 -_Ch$ = 600 -?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA PROC ; `std::operator<< >'::`1'::dtor$0 +Block$ = 8 +NotTaken$ = 88 +Taken$ = 168 +tv135 = 420 +tv133 = 424 +__$ArrayPad$ = 432 +main$dtor$1 PROC 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 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] - 00018 e8 00 00 00 00 call ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::sentry::~sentry + 00014 48 8d 4d 58 lea rcx, QWORD PTR NotTaken$[rbp] + 00018 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ 0001d 48 83 c4 28 add rsp, 40 ; 00000028H 00021 5f pop rdi 00022 5d pop rbp 00023 c3 ret 0 -?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA ENDP ; `std::operator<< >'::`1'::dtor$0 +main$dtor$1 ENDP text$x ENDS -; Function compile flags: /Odtp /RTCsu /ZI ; COMDAT text$x text$x SEGMENT -_State$ = 4 -_Ok$ = 40 -_Pad$4 = 88 -$T5 = 308 -$T6 = 340 -$T7 = 372 -$T8 = 404 -$T9 = 436 -$T10 = 468 -$T11 = 504 -tv65 = 516 -tv305 = 520 -tv303 = 520 -tv300 = 520 -tv295 = 520 -tv281 = 520 -tv266 = 520 -tv130 = 520 -tv245 = 528 -tv204 = 528 -tv179 = 528 -tv306 = 536 -tv304 = 536 -tv301 = 536 -tv243 = 537 -tv177 = 537 -tv307 = 540 -tv302 = 540 -__$ArrayPad$ = 544 -_Ostr$ = 592 -_Ch$ = 600 -?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA PROC ; `std::operator<< >'::`1'::catch$1 - -; 808 : _CATCH_IO_(ios_base, _Ostr) - +Block$ = 8 +NotTaken$ = 88 +Taken$ = 168 +tv135 = 420 +tv133 = 424 +__$ArrayPad$ = 432 +main$dtor$2 PROC 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] -__catch$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$0: - 00014 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0001b 48 8b 00 mov rax, QWORD PTR [rax] - 0001e 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00022 48 8b 8d 50 02 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00029 48 03 c8 add rcx, rax - 0002c 48 8b c1 mov rax, rcx - 0002f 48 89 85 08 02 - 00 00 mov QWORD PTR tv266[rbp], rax - 00036 41 b0 01 mov r8b, 1 - 00039 ba 04 00 00 00 mov edx, 4 - 0003e 48 8b 8d 08 02 - 00 00 mov rcx, QWORD PTR tv266[rbp] - 00045 ff 15 00 00 00 - 00 call QWORD PTR __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z - 0004b 90 npad 1 - 0004c 48 8d 05 00 00 - 00 00 lea rax, $LN21@catch$1 - 00053 48 83 c4 28 add rsp, 40 ; 00000028H - 00057 5f pop rdi - 00058 5d pop rbp - 00059 c3 ret 0 - 0005a cc int 3 -?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA ENDP ; `std::operator<< >'::`1'::catch$1 + 00014 48 8d 8d a8 00 + 00 00 lea rcx, QWORD PTR Taken$[rbp] + 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +main$dtor$2 ENDP text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp -; COMDAT main -_TEXT SEGMENT -Return1776$ = 8 -RetInst$ = 40 -Pre1$ = 72 -Post1$ = 104 -Pre2$ = 136 -Post2$ = 168 -i$4 = 196 -i$5 = 228 -AsmLen$ = 260 -Asm$ = 296 -Tb$ = 328 -i$6 = 356 -ExecBuffer$ = 392 -$T7 = 808 -$T8 = 840 -$T9 = 872 -$T10 = 904 -$T11 = 932 -$T12 = 968 -tv179 = 996 -tv168 = 996 -tv202 = 1000 -tv130 = 1000 -tv83 = 1000 -tv204 = 1008 -tv207 = 1016 -tv209 = 1024 -tv220 = 1032 -tv218 = 1040 -__$ArrayPad$ = 1048 -main PROC ; COMDAT - -; 44 : { - -$LN19: - 00000 40 55 push rbp - 00002 57 push rdi - 00003 48 81 ec 58 04 - 00 00 sub rsp, 1112 ; 00000458H - 0000a 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0000f 48 8b fc mov rdi, rsp - 00012 b9 16 01 00 00 mov ecx, 278 ; 00000116H - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00025 48 33 c5 xor rax, rbp - 00028 48 89 85 18 04 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 45 : XedTablesInit(); - - 0003b e8 00 00 00 00 call xed_tables_init - -; 46 : srand(time(NULL)); - - 00040 33 c9 xor ecx, ecx - 00042 e8 00 00 00 00 call time - 00047 8b c8 mov ecx, eax - 00049 ff 15 00 00 00 - 00 call QWORD PTR __imp_srand - -; 47 : -; 48 : -; 49 : //NATIVE_CODE_BLOCK Block; -; 50 : //NcDisassemble(&Block, TestBuffer, TestBufferSize); -; 51 : //NATIVE_CODE_BLOCK NotTaken; -; 52 : //NATIVE_CODE_BLOCK Taken; -; 53 : //printf("\n\nOriginal\n"); -; 54 : //NcDebugPrint(&Block); -; 55 : //ObfCreateOpaqueBranches(Block.Start->Next, Block.Start->Next->Next->Next->Next, &NotTaken, &Taken); -; 56 : ////printf("\n\nNotTaken\n"); -; 57 : ////NcDebugPrint(&NotTaken); -; 58 : ////printf("\n\nTaken\n"); -; 59 : ////NcDebugPrint(&Taken); -; 60 : ////printf("\n\nCombined\n"); -; 61 : //ObfCombineOpaqueBranches(&NotTaken, &Taken, NcGenUnusedLabelId(&Block), NcGenUnusedLabelId(&Block)); -; 62 : //ObfInsertOpaqueBranchBlock(Block.Start->Next, Block.Start->Next->Next->Next->Next, &NotTaken); -; 63 : //printf("\n\nNew\n"); -; 64 : //NcDebugPrint(&Block); -; 65 : -; 66 : -; 67 : PNATIVE_CODE_LINK Return1776 = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, meme1, sizeof(meme1)); - - 0004f b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00054 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00059 48 89 85 48 03 - 00 00 mov QWORD PTR $T8[rbp], rax - 00060 48 83 bd 48 03 - 00 00 00 cmp QWORD PTR $T8[rbp], 0 - 00068 74 2f je SHORT $LN13@main - 0006a c7 44 24 20 00 - 00 00 00 mov DWORD PTR [rsp+32], 0 - 00072 41 b9 05 00 00 - 00 mov r9d, 5 - 00078 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:?meme1@@3PAEA ; meme1 - 0007f ba 04 00 00 00 mov edx, 4 - 00084 48 8b 8d 48 03 - 00 00 mov rcx, QWORD PTR $T8[rbp] - 0008b e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00090 48 89 85 e8 03 - 00 00 mov QWORD PTR tv83[rbp], rax - 00097 eb 0b jmp SHORT $LN14@main -$LN13@main: - 00099 48 c7 85 e8 03 - 00 00 00 00 00 - 00 mov QWORD PTR tv83[rbp], 0 -$LN14@main: - 000a4 48 8b 85 e8 03 - 00 00 mov rax, QWORD PTR tv83[rbp] - 000ab 48 89 85 28 03 - 00 00 mov QWORD PTR $T7[rbp], rax - 000b2 48 8b 85 28 03 - 00 00 mov rax, QWORD PTR $T7[rbp] - 000b9 48 89 45 08 mov QWORD PTR Return1776$[rbp], rax - -; 68 : PNATIVE_CODE_LINK RetInst = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, meme2, sizeof(meme2)); - - 000bd b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 000c2 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 000c7 48 89 85 88 03 - 00 00 mov QWORD PTR $T10[rbp], rax - 000ce 48 83 bd 88 03 - 00 00 00 cmp QWORD PTR $T10[rbp], 0 - 000d6 74 2f je SHORT $LN15@main - 000d8 c7 44 24 20 00 - 00 00 00 mov DWORD PTR [rsp+32], 0 - 000e0 41 b9 01 00 00 - 00 mov r9d, 1 - 000e6 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:?meme2@@3PAEA ; meme2 - 000ed ba 04 00 00 00 mov edx, 4 - 000f2 48 8b 8d 88 03 - 00 00 mov rcx, QWORD PTR $T10[rbp] - 000f9 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000fe 48 89 85 e8 03 - 00 00 mov QWORD PTR tv130[rbp], rax - 00105 eb 0b jmp SHORT $LN16@main -$LN15@main: - 00107 48 c7 85 e8 03 - 00 00 00 00 00 - 00 mov QWORD PTR tv130[rbp], 0 -$LN16@main: - 00112 48 8b 85 e8 03 - 00 00 mov rax, QWORD PTR tv130[rbp] - 00119 48 89 85 68 03 - 00 00 mov QWORD PTR $T9[rbp], rax - 00120 48 8b 85 68 03 - 00 00 mov rax, QWORD PTR $T9[rbp] - 00127 48 89 45 28 mov QWORD PTR RetInst$[rbp], rax - -; 69 : PNATIVE_CODE_BLOCK Pre1 = JitEmitPreRipMov(Return1776); - - 0012b 33 d2 xor edx, edx - 0012d 48 8b 4d 08 mov rcx, QWORD PTR Return1776$[rbp] - 00131 e8 00 00 00 00 call ?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ; JitEmitPreRipMov - 00136 48 89 45 48 mov QWORD PTR Pre1$[rbp], rax - -; 70 : PNATIVE_CODE_BLOCK Post1 = JitEmitPostRipMov(Return1776); - - 0013a 33 d2 xor edx, edx - 0013c 48 8b 4d 08 mov rcx, QWORD PTR Return1776$[rbp] - 00140 e8 00 00 00 00 call ?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ; JitEmitPostRipMov - 00145 48 89 45 68 mov QWORD PTR Post1$[rbp], rax - -; 71 : PNATIVE_CODE_BLOCK Pre2 = JitEmitPreRipMov(RetInst); - - 00149 33 d2 xor edx, edx - 0014b 48 8b 4d 28 mov rcx, QWORD PTR RetInst$[rbp] - 0014f e8 00 00 00 00 call ?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ; JitEmitPreRipMov - 00154 48 89 85 88 00 - 00 00 mov QWORD PTR Pre2$[rbp], rax - -; 72 : PNATIVE_CODE_BLOCK Post2 = JitEmitPostRipMov(RetInst); - - 0015b 33 d2 xor edx, edx - 0015d 48 8b 4d 28 mov rcx, QWORD PTR RetInst$[rbp] - 00161 e8 00 00 00 00 call ?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ; JitEmitPostRipMov - 00166 48 89 85 a8 00 - 00 00 mov QWORD PTR Post2$[rbp], rax - -; 73 : -; 74 : NcAppendToBlock(Pre1, Return1776); - - 0016d 48 8b 55 08 mov rdx, QWORD PTR Return1776$[rbp] - 00171 48 8b 4d 48 mov rcx, QWORD PTR Pre1$[rbp] - 00175 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock - -; 75 : NcInsertBlockAfter(Pre1->End, Post1, 0); - - 0017a 45 33 c0 xor r8d, r8d - 0017d 48 8b 55 68 mov rdx, QWORD PTR Post1$[rbp] - 00181 48 8b 45 48 mov rax, QWORD PTR Pre1$[rbp] - 00185 48 8b 48 08 mov rcx, QWORD PTR [rax+8] - 00189 e8 00 00 00 00 call ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ; NcInsertBlockAfter - -; 76 : Pre1->End = Post1->End; - - 0018e 48 8b 45 48 mov rax, QWORD PTR Pre1$[rbp] - 00192 48 8b 4d 68 mov rcx, QWORD PTR Post1$[rbp] - 00196 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 0019a 48 89 48 08 mov QWORD PTR [rax+8], rcx - -; 77 : NcInsertBlockAfter(Pre1->End, Pre2, 0); - - 0019e 45 33 c0 xor r8d, r8d - 001a1 48 8b 95 88 00 - 00 00 mov rdx, QWORD PTR Pre2$[rbp] - 001a8 48 8b 45 48 mov rax, QWORD PTR Pre1$[rbp] - 001ac 48 8b 48 08 mov rcx, QWORD PTR [rax+8] - 001b0 e8 00 00 00 00 call ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ; NcInsertBlockAfter - -; 78 : Pre1->End = Pre2->End; - - 001b5 48 8b 45 48 mov rax, QWORD PTR Pre1$[rbp] - 001b9 48 8b 8d 88 00 - 00 00 mov rcx, QWORD PTR Pre2$[rbp] - 001c0 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 001c4 48 89 48 08 mov QWORD PTR [rax+8], rcx - -; 79 : NcAppendToBlock(Pre1, RetInst);/* - - 001c8 48 8b 55 28 mov rdx, QWORD PTR RetInst$[rbp] - 001cc 48 8b 4d 48 mov rcx, QWORD PTR Pre1$[rbp] - 001d0 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock - -; 80 : NcInsertBlockAfter(Pre1->End, Post2, 0); -; 81 : Pre1->End = Post2->End;*/ -; 82 : -; 83 : /*Pre->Start = Return1776; -; 84 : Pre->End = Return1776;*/ -; 85 : -; 86 : for (ULONG i = 0; i < Return1776->RawDataSize; i++) - - 001d5 c7 85 c4 00 00 - 00 00 00 00 00 mov DWORD PTR i$4[rbp], 0 - 001df eb 0e jmp SHORT $LN4@main -$LN2@main: - 001e1 8b 85 c4 00 00 - 00 mov eax, DWORD PTR i$4[rbp] - 001e7 ff c0 inc eax - 001e9 89 85 c4 00 00 - 00 mov DWORD PTR i$4[rbp], eax -$LN4@main: - 001ef 48 8b 45 08 mov rax, QWORD PTR Return1776$[rbp] - 001f3 8b 40 28 mov eax, DWORD PTR [rax+40] - 001f6 39 85 c4 00 00 - 00 cmp DWORD PTR i$4[rbp], eax - 001fc 73 26 jae SHORT $LN3@main - -; 87 : Return1776->RawData[i] = (UCHAR)rand(); - - 001fe ff 15 00 00 00 - 00 call QWORD PTR __imp_rand - 00204 88 85 e4 03 00 - 00 mov BYTE PTR tv168[rbp], al - 0020a 8b 85 c4 00 00 - 00 mov eax, DWORD PTR i$4[rbp] - 00210 48 8b 4d 08 mov rcx, QWORD PTR Return1776$[rbp] - 00214 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00218 0f b6 95 e4 03 - 00 00 movzx edx, BYTE PTR tv168[rbp] - 0021f 88 14 01 mov BYTE PTR [rcx+rax], dl - 00222 eb bd jmp SHORT $LN2@main -$LN3@main: - -; 88 : for (ULONG i = 0; i < RetInst->RawDataSize; i++) - - 00224 c7 85 e4 00 00 - 00 00 00 00 00 mov DWORD PTR i$5[rbp], 0 - 0022e eb 0e jmp SHORT $LN7@main -$LN5@main: - 00230 8b 85 e4 00 00 - 00 mov eax, DWORD PTR i$5[rbp] - 00236 ff c0 inc eax - 00238 89 85 e4 00 00 - 00 mov DWORD PTR i$5[rbp], eax -$LN7@main: - 0023e 48 8b 45 28 mov rax, QWORD PTR RetInst$[rbp] - 00242 8b 40 28 mov eax, DWORD PTR [rax+40] - 00245 39 85 e4 00 00 - 00 cmp DWORD PTR i$5[rbp], eax - 0024b 73 26 jae SHORT $LN6@main - -; 89 : RetInst->RawData[i] = (UCHAR)rand(); - - 0024d ff 15 00 00 00 - 00 call QWORD PTR __imp_rand - 00253 88 85 e4 03 00 - 00 mov BYTE PTR tv179[rbp], al - 00259 8b 85 e4 00 00 - 00 mov eax, DWORD PTR i$5[rbp] - 0025f 48 8b 4d 28 mov rcx, QWORD PTR RetInst$[rbp] - 00263 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00267 0f b6 95 e4 03 - 00 00 movzx edx, BYTE PTR tv179[rbp] - 0026e 88 14 01 mov BYTE PTR [rcx+rax], dl - 00271 eb bd jmp SHORT $LN5@main -$LN6@main: - -; 90 : -; 91 : ULONG AsmLen; -; 92 : PVOID Asm = NcAssemble(Pre1, &AsmLen); - - 00273 48 8d 95 04 01 - 00 00 lea rdx, QWORD PTR AsmLen$[rbp] - 0027a 48 8b 4d 48 mov rcx, QWORD PTR Pre1$[rbp] - 0027e e8 00 00 00 00 call ?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z ; NcAssemble - 00283 48 89 85 28 01 - 00 00 mov QWORD PTR Asm$[rbp], rax - -; 93 : PUCHAR Tb = (PUCHAR)Asm; - - 0028a 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR Asm$[rbp] - 00291 48 89 85 48 01 - 00 00 mov QWORD PTR Tb$[rbp], rax - -; 94 : for (uint32_t i = 0; i < AsmLen; i++) - - 00298 c7 85 64 01 00 - 00 00 00 00 00 mov DWORD PTR i$6[rbp], 0 - 002a2 eb 0e jmp SHORT $LN10@main -$LN8@main: - 002a4 8b 85 64 01 00 - 00 mov eax, DWORD PTR i$6[rbp] - 002aa ff c0 inc eax - 002ac 89 85 64 01 00 - 00 mov DWORD PTR i$6[rbp], eax -$LN10@main: - 002b2 8b 85 04 01 00 - 00 mov eax, DWORD PTR AsmLen$[rbp] - 002b8 39 85 64 01 00 - 00 cmp DWORD PTR i$6[rbp], eax - 002be 0f 83 b5 00 00 - 00 jae $LN9@main - -; 95 : { -; 96 : std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)Tb[i] << ' '; - - 002c4 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?hex@std@@YAAEAVios_base@1@AEAV21@@Z ; std::hex - 002cb 48 8b 0d 00 00 - 00 00 mov rcx, QWORD PTR __imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A - 002d2 ff 15 00 00 00 - 00 call QWORD PTR __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z - 002d8 48 89 85 e8 03 - 00 00 mov QWORD PTR tv202[rbp], rax - 002df ba 02 00 00 00 mov edx, 2 - 002e4 48 8d 8d c8 03 - 00 00 lea rcx, QWORD PTR $T12[rbp] - 002eb e8 00 00 00 00 call ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z ; std::setw - 002f0 48 89 85 f0 03 - 00 00 mov QWORD PTR tv204[rbp], rax - 002f7 48 8b 95 f0 03 - 00 00 mov rdx, QWORD PTR tv204[rbp] - 002fe 48 8b 8d e8 03 - 00 00 mov rcx, QWORD PTR tv202[rbp] - 00305 e8 00 00 00 00 call ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ; std::operator<<,__int64> - 0030a 48 89 85 f8 03 - 00 00 mov QWORD PTR tv207[rbp], rax - 00311 b2 30 mov dl, 48 ; 00000030H - 00313 48 8d 8d a4 03 - 00 00 lea rcx, QWORD PTR $T11[rbp] - 0031a e8 00 00 00 00 call ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ; std::setfill - 0031f 48 89 85 00 04 - 00 00 mov QWORD PTR tv209[rbp], rax - 00326 48 8b 95 00 04 - 00 00 mov rdx, QWORD PTR tv209[rbp] - 0032d 48 8b 8d f8 03 - 00 00 mov rcx, QWORD PTR tv207[rbp] - 00334 e8 00 00 00 00 call ??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z ; std::operator<<,char> - 00339 48 89 85 08 04 - 00 00 mov QWORD PTR tv220[rbp], rax - 00340 8b 85 64 01 00 - 00 mov eax, DWORD PTR i$6[rbp] - 00346 48 8b 8d 48 01 - 00 00 mov rcx, QWORD PTR Tb$[rbp] - 0034d 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00351 89 85 10 04 00 - 00 mov DWORD PTR tv218[rbp], eax - 00357 8b 95 10 04 00 - 00 mov edx, DWORD PTR tv218[rbp] - 0035d 48 8b 8d 08 04 - 00 00 mov rcx, QWORD PTR tv220[rbp] - 00364 ff 15 00 00 00 - 00 call QWORD PTR __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z - 0036a b2 20 mov dl, 32 ; 00000020H - 0036c 48 8b c8 mov rcx, rax - 0036f e8 00 00 00 00 call ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z ; std::operator<< > - -; 97 : } - - 00374 e9 2b ff ff ff jmp $LN8@main -$LN9@main: - -; 98 : -; 99 : system("pause"); - - 00379 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_05PDJBBECF@pause@ - 00380 ff 15 00 00 00 - 00 call QWORD PTR __imp_system - -; 100 : -; 101 : typedef ULONG64(*FnGet1776)(); -; 102 : FnGet1776 ExecBuffer = (FnGet1776)MakeExecutableBuffer(Asm, AsmLen); - - 00386 8b 95 04 01 00 - 00 mov edx, DWORD PTR AsmLen$[rbp] - 0038c 48 8b 8d 28 01 - 00 00 mov rcx, QWORD PTR Asm$[rbp] - 00393 e8 00 00 00 00 call ?MakeExecutableBuffer@@YAPEAXPEAXK@Z ; MakeExecutableBuffer - 00398 48 89 85 88 01 - 00 00 mov QWORD PTR ExecBuffer$[rbp], rax - -; 103 : if (ExecBuffer) - - 0039f 48 83 bd 88 01 - 00 00 00 cmp QWORD PTR ExecBuffer$[rbp], 0 - 003a7 74 54 je SHORT $LN11@main - -; 104 : { -; 105 : printf("The numba was: %X\n", ExecBuffer()); - - 003a9 ff 95 88 01 00 - 00 call QWORD PTR ExecBuffer$[rbp] - 003af 48 8b d0 mov rdx, rax - 003b2 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BD@FOIEMPBM@The?5numba?5was?3?5?$CFX?6@ - 003b9 e8 00 00 00 00 call printf - -; 106 : printf("The numba was: %X\n", ExecBuffer()); - - 003be ff 95 88 01 00 - 00 call QWORD PTR ExecBuffer$[rbp] - 003c4 48 8b d0 mov rdx, rax - 003c7 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BD@FOIEMPBM@The?5numba?5was?3?5?$CFX?6@ - 003ce e8 00 00 00 00 call printf - -; 107 : -; 108 : printf("The numba was: %X\n", ExecBuffer()); - - 003d3 ff 95 88 01 00 - 00 call QWORD PTR ExecBuffer$[rbp] - 003d9 48 8b d0 mov rdx, rax - 003dc 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BD@FOIEMPBM@The?5numba?5was?3?5?$CFX?6@ - 003e3 e8 00 00 00 00 call printf - -; 109 : -; 110 : printf("The numba was: %X\n", ExecBuffer()); - - 003e8 ff 95 88 01 00 - 00 call QWORD PTR ExecBuffer$[rbp] - 003ee 48 8b d0 mov rdx, rax - 003f1 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0BD@FOIEMPBM@The?5numba?5was?3?5?$CFX?6@ - 003f8 e8 00 00 00 00 call printf -$LN11@main: - -; 111 : -; 112 : } -; 113 : -; 114 : -; 115 : //NcDebugPrint(Post); -; 116 : -; 117 : -; 118 : -; 119 : /*NATIVE_CODE_BLOCK Block; -; 120 : NcDisassemble(&Block, TestBuffer, TestBufferSize); -; 121 : PNATIVE_CODE_LINK NewLink = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, meme1, sizeof(meme1)); -; 122 : -; 123 : NcInsertLinkBefore(Block.End->Prev->Prev->Prev->Prev, NewLink); -; 124 : ULONG AssembledSize; -; 125 : PVOID AssembledBlock = NcAssemble(&Block, &AssembledSize); -; 126 : if (!AssembledBlock || !AssembledSize) -; 127 : { -; 128 : printf("Something failed nicka.\n"); -; 129 : system("pause"); -; 130 : return -1; -; 131 : } -; 132 : PUCHAR Tb = (PUCHAR)AssembledBlock; -; 133 : for (uint32_t i = 0; i < AssembledSize; i++) -; 134 : { -; 135 : std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)Tb[i] << ' '; -; 136 : } -; 137 : */ -; 138 : -; 139 : -; 140 : //PNATIVE_CODE_BLOCK OpaqueBranch = ObfGenOpaqueBranch(Block.Start, Block.End); -; 141 : //NcDebugPrint(OpaqueBranch); -; 142 : -; 143 : -; 144 : -; 145 : /*NATIVE_CODE_LINK T; -; 146 : T.RawDataSize = 10; -; 147 : T.RawData = new UCHAR[10]; -; 148 : memset(T.RawData, 0xAA, 10); -; 149 : JIT_BITWISE_DATA Data; -; 150 : RtlSecureZeroMemory(&Data, sizeof(JIT_BITWISE_DATA)); -; 151 : PNATIVE_CODE_BLOCK NewBlock = JitEmitPreRipMov(&T); -; 152 : if (NewBlock) -; 153 : { -; 154 : printf("\n"); -; 155 : NcDebugPrint(NewBlock); -; 156 : printf("\n"); -; 157 : NcPrintBlockCode(NewBlock); -; 158 : } -; 159 : system("pause");*/ -; 160 : -; 161 : } - - 003fd 33 c0 xor eax, eax - 003ff 8b f8 mov edi, eax - 00401 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00405 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:main$rtcFrameData - 0040c e8 00 00 00 00 call _RTC_CheckStackVars - 00411 8b c7 mov eax, edi - 00413 48 8b 8d 18 04 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0041a 48 33 cd xor rcx, rbp - 0041d e8 00 00 00 00 call __security_check_cookie - 00422 48 8d a5 28 04 - 00 00 lea rsp, QWORD PTR [rbp+1064] - 00429 5f pop rdi - 0042a 5d pop rbp - 0042b c3 ret 0 -main ENDP -_TEXT ENDS ; COMDAT text$x text$x SEGMENT -Return1776$ = 8 -RetInst$ = 40 -Pre1$ = 72 -Post1$ = 104 -Pre2$ = 136 -Post2$ = 168 -i$4 = 196 -i$5 = 228 -AsmLen$ = 260 -Asm$ = 296 -Tb$ = 328 -i$6 = 356 -ExecBuffer$ = 392 -$T7 = 808 -$T8 = 840 -$T9 = 872 -$T10 = 904 -$T11 = 932 -$T12 = 968 -tv179 = 996 -tv168 = 996 -tv202 = 1000 -tv130 = 1000 -tv83 = 1000 -tv204 = 1008 -tv207 = 1016 -tv209 = 1024 -tv220 = 1032 -tv218 = 1040 -__$ArrayPad$ = 1048 +Block$ = 8 +NotTaken$ = 88 +Taken$ = 168 +tv135 = 420 +tv133 = 424 +__$ArrayPad$ = 432 main$dtor$0 PROC 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 48 03 - 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 + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 4d 08 lea rcx, QWORD PTR Block$[rbp] + 00018 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 0001d 48 83 c4 28 add rsp, 40 ; 00000028H + 00021 5f pop rdi + 00022 5d pop rbp + 00023 c3 ret 0 main$dtor$0 ENDP text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI ; COMDAT text$x text$x SEGMENT -Return1776$ = 8 -RetInst$ = 40 -Pre1$ = 72 -Post1$ = 104 -Pre2$ = 136 -Post2$ = 168 -i$4 = 196 -i$5 = 228 -AsmLen$ = 260 -Asm$ = 296 -Tb$ = 328 -i$6 = 356 -ExecBuffer$ = 392 -$T7 = 808 -$T8 = 840 -$T9 = 872 -$T10 = 904 -$T11 = 932 -$T12 = 968 -tv179 = 996 -tv168 = 996 -tv202 = 1000 -tv130 = 1000 -tv83 = 1000 -tv204 = 1008 -tv207 = 1016 -tv209 = 1024 -tv220 = 1032 -tv218 = 1040 -__$ArrayPad$ = 1048 +Block$ = 8 +NotTaken$ = 88 +Taken$ = 168 +tv135 = 420 +tv133 = 424 +__$ArrayPad$ = 432 main$dtor$1 PROC 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 88 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 + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 4d 58 lea rcx, QWORD PTR NotTaken$[rbp] + 00018 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 0001d 48 83 c4 28 add rsp, 40 ; 00000028H + 00021 5f pop rdi + 00022 5d pop rbp + 00023 c3 ret 0 main$dtor$1 ENDP text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; COMDAT text$x text$x SEGMENT -Return1776$ = 8 -RetInst$ = 40 -Pre1$ = 72 -Post1$ = 104 -Pre2$ = 136 -Post2$ = 168 -i$4 = 196 -i$5 = 228 -AsmLen$ = 260 -Asm$ = 296 -Tb$ = 328 -i$6 = 356 -ExecBuffer$ = 392 -$T7 = 808 -$T8 = 840 -$T9 = 872 -$T10 = 904 -$T11 = 932 -$T12 = 968 -tv179 = 996 -tv168 = 996 -tv202 = 1000 -tv130 = 1000 -tv83 = 1000 -tv204 = 1008 -tv207 = 1016 -tv209 = 1024 -tv220 = 1032 -tv218 = 1040 -__$ArrayPad$ = 1048 -main$dtor$0 PROC +Block$ = 8 +NotTaken$ = 88 +Taken$ = 168 +tv135 = 420 +tv133 = 424 +__$ArrayPad$ = 432 +main$dtor$2 PROC 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 48 03 - 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 -main$dtor$0 ENDP + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d a8 00 + 00 00 lea rcx, QWORD PTR Taken$[rbp] + 0001b e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +main$dtor$2 ENDP text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT text$x -text$x SEGMENT -Return1776$ = 8 -RetInst$ = 40 -Pre1$ = 72 -Post1$ = 104 -Pre2$ = 136 -Post2$ = 168 -i$4 = 196 -i$5 = 228 -AsmLen$ = 260 -Asm$ = 296 -Tb$ = 328 -i$6 = 356 -ExecBuffer$ = 392 -$T7 = 808 -$T8 = 840 -$T9 = 872 -$T10 = 904 -$T11 = 932 -$T12 = 968 -tv179 = 996 -tv168 = 996 -tv202 = 1000 -tv130 = 1000 -tv83 = 1000 -tv204 = 1008 -tv207 = 1016 -tv209 = 1024 -tv220 = 1032 -tv218 = 1040 -__$ArrayPad$ = 1048 -main$dtor$1 PROC +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp +; COMDAT ?MakeExecutableBuffer@@YAPEAXPEAXK@Z +_TEXT SEGMENT +ExecBuffer$ = 8 +Buffer$ = 256 +BufferSize$ = 264 +?MakeExecutableBuffer@@YAPEAXPEAXK@Z PROC ; MakeExecutableBuffer, COMDAT + +; 14 : { + +$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 08 01 + 00 00 sub rsp, 264 ; 00000108H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__386EB99F_Main@cpp + 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 15 : PVOID ExecBuffer = VirtualAlloc(nullptr, BufferSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE); + + 00023 8b 85 08 01 00 + 00 mov eax, DWORD PTR BufferSize$[rbp] + 00029 41 b9 40 00 00 + 00 mov r9d, 64 ; 00000040H + 0002f 41 b8 00 10 00 + 00 mov r8d, 4096 ; 00001000H + 00035 8b d0 mov edx, eax + 00037 33 c9 xor ecx, ecx + 00039 ff 15 00 00 00 + 00 call QWORD PTR __imp_VirtualAlloc + 0003f 48 89 45 08 mov QWORD PTR ExecBuffer$[rbp], rax + +; 16 : if (!ExecBuffer) + + 00043 48 83 7d 08 00 cmp QWORD PTR ExecBuffer$[rbp], 0 + 00048 75 04 jne SHORT $LN2@MakeExecut + +; 17 : return NULL; + + 0004a 33 c0 xor eax, eax + 0004c eb 19 jmp SHORT $LN1@MakeExecut +$LN2@MakeExecut: + +; 18 : RtlCopyMemory(ExecBuffer, Buffer, BufferSize); + + 0004e 8b 85 08 01 00 + 00 mov eax, DWORD PTR BufferSize$[rbp] + 00054 44 8b c0 mov r8d, eax + 00057 48 8b 95 00 01 + 00 00 mov rdx, QWORD PTR Buffer$[rbp] + 0005e 48 8b 4d 08 mov rcx, QWORD PTR ExecBuffer$[rbp] + 00062 e8 00 00 00 00 call memcpy +$LN1@MakeExecut: + +; 19 : } + + 00067 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 0006e 5f pop rdi + 0006f 5d pop rbp + 00070 c3 ret 0 +?MakeExecutableBuffer@@YAPEAXPEAXK@Z ENDP ; MakeExecutableBuffer +_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 >::~vector > + 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::_Vector_val >,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::_Vector_val >,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 >::_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::_Vector_val >,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 >::_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 >::_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 >::_Destroy + +; 1765 : _Getal().deallocate(_Myfirst, static_cast(_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 >::_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::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 >::_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 >::_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 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 88 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 -main$dtor$1 ENDP -text$x ENDS + 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 >::_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 > + +; 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 >::_Destroy +_TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp -; COMDAT ?MakeExecutableBuffer@@YAPEAXPEAXK@Z +; 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 -ExecBuffer$ = 8 -Buffer$ = 256 -BufferSize$ = 264 -?MakeExecutableBuffer@@YAPEAXPEAXK@Z PROC ; MakeExecutableBuffer, COMDAT +_Alproxy$ = 8 +$S1$ = 36 +$T4 = 260 +__$ArrayPad$ = 280 +this$ = 320 +??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::vector >::~vector >, COMDAT -; 14 : { +; 711 : _CONSTEXPR20_CONTAINER ~vector() noexcept { -$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 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp - 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode +$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 -; 15 : PVOID ExecBuffer = VirtualAlloc(nullptr, BufferSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE); +; 712 : _Tidy(); - 0003a 8b 85 08 01 00 - 00 mov eax, DWORD PTR BufferSize$[rbp] - 00040 41 b9 40 00 00 - 00 mov r9d, 64 ; 00000040H - 00046 41 b8 00 10 00 - 00 mov r8d, 4096 ; 00001000H - 0004c 8b d0 mov edx, eax - 0004e 33 c9 xor ecx, ecx - 00050 ff 15 00 00 00 - 00 call QWORD PTR __imp_VirtualAlloc - 00056 48 89 45 08 mov QWORD PTR ExecBuffer$[rbp], rax + 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 >::_Tidy -; 16 : if (!ExecBuffer) +; 713 : #if _ITERATOR_DEBUG_LEVEL != 0 +; 714 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); - 0005a 48 83 7d 08 00 cmp QWORD PTR ExecBuffer$[rbp], 0 - 0005f 75 04 jne SHORT $LN2@MakeExecut + 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 >::_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::allocator + 0006d 48 8d 45 24 lea rax, QWORD PTR $S1$[rbp] + 00071 48 89 45 08 mov QWORD PTR _Alproxy$[rbp], rax -; 17 : return NULL; +; 715 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); - 00061 33 c0 xor eax, eax - 00063 eb 19 jmp SHORT $LN1@MakeExecut -$LN2@MakeExecut: + 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 + 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 > + +; 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 >::~vector > +_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::deallocate, COMDAT -; 18 : RtlCopyMemory(ExecBuffer, Buffer, BufferSize); +; 833 : _CONSTEXPR20_DYNALLOC void deallocate(_Ty* const _Ptr, const size_t _Count) { - 00065 8b 85 08 01 00 - 00 mov eax, DWORD PTR BufferSize$[rbp] - 0006b 44 8b c0 mov r8d, eax - 0006e 48 8b 95 00 01 - 00 00 mov rdx, QWORD PTR Buffer$[rbp] - 00075 48 8b 4d 08 mov rcx, QWORD PTR ExecBuffer$[rbp] - 00079 e8 00 00 00 00 call memcpy -$LN1@MakeExecut: +$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> -; 19 : } +; 836 : } - 0007e 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00085 5f pop rdi - 00086 5d pop rbp - 00087 c3 ret 0 -?MakeExecutableBuffer@@YAPEAXPEAXK@Z ENDP ; MakeExecutableBuffer + 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::deallocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -3218,7 +2304,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -3230,147 +2316,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 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] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -3381,7 +2461,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -3393,238 +2473,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 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] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\time.h -; COMDAT time -_TEXT SEGMENT -_Time$ = 224 -time PROC ; COMDAT - -; 521 : { - - 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A0B61CF9_time@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 522 : return _time64(_Time); - - 00036 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR _Time$[rbp] - 0003d ff 15 00 00 00 - 00 call QWORD PTR __imp__time64 - -; 523 : } - - 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 -time ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ios -; COMDAT ?hex@std@@YAAEAVios_base@1@AEAV21@@Z -_TEXT SEGMENT -_Iosbase$ = 224 -?hex@std@@YAAEAVios_base@1@AEAV21@@Z PROC ; std::hex, COMDAT - -; 206 : inline ios_base& __CLRCALL_OR_CDECL hex(ios_base& _Iosbase) { // set basefield to hex - -$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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__165C22CB_ios - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 207 : _Iosbase.setf(ios_base::hex, ios_base::basefield); - - 00036 41 b8 00 0e 00 - 00 mov r8d, 3584 ; 00000e00H - 0003c ba 00 08 00 00 mov edx, 2048 ; 00000800H - 00041 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR _Iosbase$[rbp] - 00048 ff 15 00 00 00 - 00 call QWORD PTR __imp_?setf@ios_base@std@@QEAAHHH@Z - -; 208 : return _Iosbase; - - 0004e 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Iosbase$[rbp] - -; 209 : } - - 00055 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0005c 5f pop rdi - 0005d 5d pop rbp - 0005e c3 ret 0 -?hex@std@@YAAEAVios_base@1@AEAV21@@Z ENDP ; std::hex -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; 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 @@ -3635,7 +2618,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -3646,104 +2629,98 @@ $LN7: 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 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; +; 523 : // convert C string to _Elem sequence using _Cvtvec +; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; - 00040 48 8b 8d 40 01 + 00029 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 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 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 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 - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 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: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 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] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 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] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; 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 @@ -3760,79 +2737,73 @@ $LN4: 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 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 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 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 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 - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_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); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 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] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 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.27.29110\include\xlocale +; 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 @@ -3851,7 +2822,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 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 @@ -3862,344 +2833,679 @@ $LN12: 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 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 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] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 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] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 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 -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 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 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 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] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 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] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 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] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 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 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 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 - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 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 -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 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] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 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 - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 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] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 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] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 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] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 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 - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 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] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 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] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring -; COMDAT ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ +; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\time.h +; COMDAT time +_TEXT SEGMENT +_Time$ = 224 +time PROC ; COMDAT + +; 521 : { + + 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:__A0B61CF9_time@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 522 : return _time64(_Time); + + 0001f 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _Time$[rbp] + 00026 ff 15 00 00 00 + 00 call QWORD PTR __imp__time64 + +; 523 : } + + 0002c 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00033 5f pop rdi + 00034 5d pop rbp + 00035 c3 ret 0 +time 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 ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ _TEXT SEGMENT -?eof@?$_Narrow_char_traits@DH@std@@SAHXZ PROC ; std::_Narrow_char_traits::eof, COMDAT +_Lock$ = 4 +__$ArrayPad$ = 216 +this$ = 256 +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_locked, COMDAT -; 400 : _NODISCARD static constexpr int_type eof() noexcept { +; 1095 : void _Orphan_all_locked() noexcept { $LN3: - 00000 40 55 push rbp - 00002 57 push rdi - 00003 48 81 ec e8 00 + 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 - 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8b fc mov rdi, rsp - 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 401 : return static_cast(EOF); +; 1228 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1229 : if (_Myproxy) { // proxy allocated, drain it - 0002a b8 ff ff ff ff mov eax, -1 + 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: -; 402 : } +; 1237 : } +; 1238 : } +; 1239 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1240 : } - 0002f 48 8d a5 c8 00 + 00038 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00036 5f pop rdi - 00037 5d pop rbp - 00038 c3 ret 0 -?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ENDP ; std::_Narrow_char_traits::eof + 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.27.29110\include\xstring -; COMDAT ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z +; 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 -tv65 = 192 -_Left$ = 240 -_Right$ = 248 -?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z PROC ; std::_Narrow_char_traits::eq_int_type, COMDAT +_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 -; 392 : _NODISCARD static constexpr bool eq_int_type(const int_type& _Left, const int_type& _Right) noexcept { +; 153 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { -$LN5: +$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 f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 393 : return _Left == _Right; - - 0003b 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Left$[rbp] - 00042 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR _Right$[rbp] - 00049 8b 09 mov ecx, DWORD PTR [rcx] - 0004b 39 08 cmp DWORD PTR [rax], ecx - 0004d 75 0c jne SHORT $LN3@eq_int_typ - 0004f c7 85 c0 00 00 - 00 01 00 00 00 mov DWORD PTR tv65[rbp], 1 - 00059 eb 0a jmp SHORT $LN4@eq_int_typ -$LN3@eq_int_typ: - 0005b c7 85 c0 00 00 - 00 00 00 00 00 mov DWORD PTR tv65[rbp], 0 -$LN4@eq_int_typ: - 00065 0f b6 85 c0 00 - 00 00 movzx eax, BYTE PTR tv65[rbp] - -; 394 : } - - 0006c 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 00073 5f pop rdi - 00074 5d pop rbp - 00075 c3 ret 0 -?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ENDP ; std::_Narrow_char_traits::eq_int_type + 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(_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(_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(_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 @@ -4221,36 +3527,30 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 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] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -4277,75 +3577,75 @@ $LN3: 00016 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8b fc mov rdi, rsp - 00025 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 78 + 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00027 b9 1e 00 00 00 mov ecx, 30 + 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00031 f3 ab rep stosd + 00033 48 8b 8c 24 78 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00039 48 8b 05 00 00 + 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00040 48 33 c5 xor rax, rbp - 00043 48 89 85 28 01 + 00042 48 33 c5 xor rax, rbp + 00045 48 89 85 28 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004a 48 8d 0d 00 00 + 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h - 00051 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 957 : int _Result; ; 958 : va_list _ArgList; ; 959 : __crt_va_start(_ArgList, _Format); - 00056 48 8d 85 58 01 + 00058 48 8d 85 58 01 00 00 lea rax, QWORD PTR _Format$[rbp+8] - 0005d 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax + 0005f 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax ; 960 : _Result = _vfprintf_l(stdout, _Format, NULL, _ArgList); - 00061 48 8b 45 28 mov rax, QWORD PTR _ArgList$[rbp] - 00065 48 89 85 18 01 + 00063 48 8b 45 28 mov rax, QWORD PTR _ArgList$[rbp] + 00067 48 89 85 18 01 00 00 mov QWORD PTR tv77[rbp], rax - 0006c b9 01 00 00 00 mov ecx, 1 - 00071 ff 15 00 00 00 + 0006e b9 01 00 00 00 mov ecx, 1 + 00073 ff 15 00 00 00 00 call QWORD PTR __imp___acrt_iob_func - 00077 48 89 85 20 01 + 00079 48 89 85 20 01 00 00 mov QWORD PTR tv75[rbp], rax - 0007e 4c 8b 8d 18 01 + 00080 4c 8b 8d 18 01 00 00 mov r9, QWORD PTR tv77[rbp] - 00085 45 33 c0 xor r8d, r8d - 00088 48 8b 95 50 01 + 00087 45 33 c0 xor r8d, r8d + 0008a 48 8b 95 50 01 00 00 mov rdx, QWORD PTR _Format$[rbp] - 0008f 48 8b 8d 20 01 + 00091 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR tv75[rbp] - 00096 e8 00 00 00 00 call _vfprintf_l - 0009b 89 45 04 mov DWORD PTR _Result$[rbp], eax + 00098 e8 00 00 00 00 call _vfprintf_l + 0009d 89 45 04 mov DWORD PTR _Result$[rbp], eax ; 961 : __crt_va_end(_ArgList); - 0009e 48 c7 45 28 00 + 000a0 48 c7 45 28 00 00 00 00 mov QWORD PTR _ArgList$[rbp], 0 ; 962 : return _Result; - 000a6 8b 45 04 mov eax, DWORD PTR _Result$[rbp] + 000a8 8b 45 04 mov eax, DWORD PTR _Result$[rbp] ; 963 : } - 000a9 8b f8 mov edi, eax - 000ab 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000af 48 8d 15 00 00 + 000ab 8b f8 mov edi, eax + 000ad 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000b1 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:printf$rtcFrameData - 000b6 e8 00 00 00 00 call _RTC_CheckStackVars - 000bb 8b c7 mov eax, edi - 000bd 48 8b 8d 28 01 + 000b8 e8 00 00 00 00 call _RTC_CheckStackVars + 000bd 8b c7 mov eax, edi + 000bf 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000c4 48 33 cd xor rcx, rbp - 000c7 e8 00 00 00 00 call __security_check_cookie - 000cc 48 8d a5 38 01 + 000c6 48 33 cd xor rcx, rbp + 000c9 e8 00 00 00 00 call __security_check_cookie + 000ce 48 8d a5 38 01 00 00 lea rsp, QWORD PTR [rbp+312] - 000d3 5f pop rdi - 000d4 5d pop rbp - 000d5 c3 ret 0 + 000d5 5f pop rdi + 000d6 5d pop rbp + 000d7 c3 ret 0 printf ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -4370,39 +3670,33 @@ $LN3: 00016 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8b fc mov rdi, rsp - 00025 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 00039 48 8d 0d 00 00 + 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 645 : return __stdio_common_vfprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList); - 00045 e8 00 00 00 00 call __local_stdio_printf_options - 0004a 48 8b 8d f8 00 + 0002e e8 00 00 00 00 call __local_stdio_printf_options + 00033 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _ArgList$[rbp] - 00051 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 00056 4c 8b 8d f0 00 + 0003a 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 0003f 4c 8b 8d f0 00 00 00 mov r9, QWORD PTR _Locale$[rbp] - 0005d 4c 8b 85 e8 00 + 00046 4c 8b 85 e8 00 00 00 mov r8, QWORD PTR _Format$[rbp] - 00064 48 8b 95 e0 00 + 0004d 48 8b 95 e0 00 00 00 mov rdx, QWORD PTR _Stream$[rbp] - 0006b 48 8b 08 mov rcx, QWORD PTR [rax] - 0006e ff 15 00 00 00 + 00054 48 8b 08 mov rcx, QWORD PTR [rax] + 00057 ff 15 00 00 00 00 call QWORD PTR __imp___stdio_common_vfprintf ; 646 : } - 00074 48 8d a5 c8 00 + 0005d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0007b 5f pop rdi - 0007c 5d pop rbp - 0007d c3 ret 0 + 00064 5f pop rdi + 00065 5d pop rbp + 00066 c3 ret 0 _vfprintf_l ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -4419,31 +3713,27 @@ $LN3: 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8b fc mov rdi, rsp - 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8d 0d 00 00 + 0000f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__A2143F22_corecrt_stdio_config@h - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : static unsigned __int64 _OptionsStorage; ; 92 : return &_OptionsStorage; - 0002a 48 8d 05 00 00 + 0001b 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage ; 93 : } - 00031 48 8d a5 c8 00 + 00022 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00038 5f pop rdi - 00039 5d pop rbp - 0003a c3 ret 0 + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 __local_stdio_printf_options ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -4460,25 +3750,18 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__386EB99F_Main@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -4493,25 +3776,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__386EB99F_Main@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -4526,25 +3802,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__386EB99F_Main@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -4557,21 +3826,14 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__386EB99F_Main@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 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 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/NativeCode.cod b/CodeVirtualizer/x64/Debug/NativeCode.cod index abc56a9..81674b7 100644 --- a/CodeVirtualizer/x64/Debug/NativeCode.cod +++ b/CodeVirtualizer/x64/Debug/NativeCode.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@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 @@ -33,58 +33,59 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon 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 -__886F7F70_xloctime DB 01H -__3DD0E9E9_xed-util@h DB 01H -__209FD46F_xed-iform-map@h DB 01H -__4E05E119_xed-inst@h DB 01H -__0607FC5A_xed-flags@h DB 01H -__B4910D57_xed-operand-accessors@h DB 01H -__8663E876_xed-state@h DB 01H -__BB5B4FF8_xed-encode@h DB 01H -__21860875_xed-encoder-hl@h DB 01H -__F7815311_xed-decoded-inst-api@h DB 01H -__C7F780C9_NativeCode@h DB 01H -__84EFCFFB_NativeCode@cpp DB 01H -__BF2A7ACC_vector DB 01H -__7EA464AF_istream DB 01H -__1D745195_ostream DB 01H -__6FFBAAB7_streambuf DB 01H -__528871F3_iterator DB 01H -__3E6EDFAA_iosfwd DB 01H -__CF1C1A3F_utility DB 01H -__38038D2D_xstddef DB 01H -__EE19A480_xatomic@h DB 01H -__8266A2FD_iomanip 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 +__092B7E84_vector DB 01H +__337731E1_NativeCode@cpp 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 +__FAD76A5B_iomanip 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 @@ -115,13 +116,19 @@ PUBLIC ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_ma PUBLIC ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z ; std::_Container_proxy::_Container_proxy PUBLIC ??0_Container_base12@std@@QEAA@XZ ; std::_Container_base12::_Container_base12 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 ??0_Iterator_base12@std@@QEAA@XZ ; std::_Iterator_base12::_Iterator_base12 PUBLIC ??0_Iterator_base12@std@@QEAA@AEBU01@@Z ; std::_Iterator_base12::_Iterator_base12 PUBLIC ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z ; std::_Iterator_base12::operator= PUBLIC ??1_Iterator_base12@std@@QEAA@XZ ; std::_Iterator_base12::~_Iterator_base12 PUBLIC ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z ; std::_Iterator_base12::_Adopt +PUBLIC ?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me_v2 PUBLIC ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont -PUBLIC ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me +PUBLIC ?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z ; std::_Iterator_base12::_Adopt_unlocked +PUBLIC ?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z ; std::_Iterator_base12::_Adopt_locked +PUBLIC ?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ ; std::_Iterator_base12::_Orphan_me_unlocked +PUBLIC ?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ ; std::_Iterator_base12::_Orphan_me_locked PUBLIC ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z ; std::_Construct_in_place PUBLIC ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type PUBLIC ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof @@ -157,6 +164,8 @@ PUBLIC ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector< PUBLIC ?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z ; std::vector >::_Calculate_growth PUBLIC ?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z ; std::vector >::_Change_array PUBLIC ?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ ; std::vector >::_Xlength +PUBLIC ?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range_unlocked +PUBLIC ?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range_locked PUBLIC ?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range PUBLIC ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal PUBLIC ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ ; std::vector >::_Getal @@ -194,22 +203,22 @@ PUBLIC ?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@ PUBLIC ?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z ; std::_Verify_range PUBLIC ?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z ; std::_Vector_const_iterator > >::_Seek_to PUBLIC ??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ ; std::_Vector_const_iterator > >::~_Vector_const_iterator > > -PUBLIC ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z ; std::_Vector_const_iterator > >::_Vector_const_iterator > > +PUBLIC ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z ; std::_Vector_const_iterator > >::_Vector_const_iterator > > PUBLIC ?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ ; std::_Vector_iterator > >::_Unwrapped PUBLIC ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ ; std::_Vector_iterator > >::~_Vector_iterator > > -PUBLIC ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z ; std::_Vector_iterator > >::_Vector_iterator > > +PUBLIC ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z ; std::_Vector_iterator > >::_Vector_iterator > > PUBLIC ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z ; std::_Vector_iterator > >::_Vector_iterator > > PUBLIC ??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z ; std::find > >,unsigned long> PUBLIC ??$log2@H$0A@@@YANH@Z ; log2 -PUBLIC ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z ; std::operator<< > PUBLIC ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ; std::operator<<,__int64> PUBLIC ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ; std::setfill PUBLIC ??0?$_Fillobj@D@std@@QEAA@D@Z ; std::_Fillobj::_Fillobj PUBLIC ??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z ; std::operator<<,char> +PUBLIC ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z ; std::operator<< > PUBLIC ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z ; std::addressof > > -PUBLIC ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z ; std::vector >::emplace_back +PUBLIC ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z ; std::vector >::emplace_back PUBLIC ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward -PUBLIC ??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z ; std::vector >::_Emplace_back_with_unused_capacity +PUBLIC ??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z ; std::vector >::_Emplace_back_with_unused_capacity PUBLIC ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy PUBLIC ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z ; std::_Default_allocator_traits >::construct PUBLIC ??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z ; std::vector >::_Emplace_reallocate @@ -229,19 +238,31 @@ PUBLIC ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ; std::_Get_size_of_n<16> PUBLIC ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> PUBLIC ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> PUBLIC ??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z ; std::addressof +PUBLIC ??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z ; std::_Voidify_iter PUBLIC ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z ; std::forward PUBLIC ??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z ; std::_Adl_verify_range > >,std::_Vector_iterator > > > -PUBLIC ??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > &> -PUBLIC ??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > const &> +PUBLIC ??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > &> +PUBLIC ??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > const &> PUBLIC ??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z ; std::_Find_unchecked PUBLIC ??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z ; std::_Seek_wrapped > >,unsigned long *> +PUBLIC ??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z ; std::_Voidify_iter PUBLIC ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z ; std::_Allocate_manually_vector_aligned PUBLIC ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z ; std::_Uninitialized_move > PUBLIC ??$_Get_size_of_n@$03@std@@YA_K_K@Z ; std::_Get_size_of_n<4> PUBLIC ??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z ; std::_Find_unchecked1 -PUBLIC ??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z ; std::_Get_unwrapped +PUBLIC ??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z ; std::forward +PUBLIC ??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z ; std::_Get_unwrapped +PUBLIC ??$move@AEAK@std@@YA$$QEAKAEAK@Z ; std::move PUBLIC ??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z ; std::_Copy_memmove +PUBLIC ??0?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@PEAKAEAV?$allocator@K@1@@Z ; std::_Uninitialized_backout_al >::_Uninitialized_backout_al > +PUBLIC ??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ ; std::_Uninitialized_backout_al >::~_Uninitialized_backout_al > +PUBLIC ?_Release@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAPEAKXZ ; std::_Uninitialized_backout_al >::_Release +PUBLIC ?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX_K@Z ; std::_Uninitialized_backout_al >::__autoclassinit2 +PUBLIC ??$_Emplace_back@K@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX$$QEAK@Z ; std::_Uninitialized_backout_al >::_Emplace_back PUBLIC ??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z ; std::_Refancy +PUBLIC ??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z ; std::_To_address +PUBLIC ??$forward@K@std@@YA$$QEAKAEAK@Z ; std::forward +PUBLIC ??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z ; std::_Default_allocator_traits >::construct PUBLIC __JustMyCode_Default PUBLIC ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage PUBLIC ??_7exception@std@@6B@ ; std::exception::`vftable' @@ -260,16 +281,16 @@ PUBLIC _CT??_R0?AVexception@std@@@8??0exception@std@@QEAA@AEBV01@@Z24 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@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' -PUBLIC ??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `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@_0BJ@LFDBABJJ@ITERATOR?5LIST?5CORRUPTED?$CB@ ; `string' -PUBLIC ??_C@_1EE@KLDMFDFL@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ ; `string' +PUBLIC ??_C@_1FG@EMKODCE@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ ; `string' PUBLIC ??_C@_1DG@PLBPCAEM@?$AA?$CC?$AAI?$AAT?$AAE?$AAR?$AAA?$AAT?$AAO?$AAR?$AA?5?$AAL?$AAI?$AAS?$AAT?$AA?5@ ; `string' -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `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@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ??_C@_0DF@KKBEBOEB@Failed?5to?5validate?5jump?4?5Type?3?5@ ; `string' PUBLIC ??_C@_0CL@COPJALEP@XedDecode?5failed?5in?5NcDeepCopyL@ ; `string' PUBLIC ??_C@_0CA@KDIENFLL@XedDecode?5failed?5with?5error?5?$CFs?6@ ; `string' @@ -278,8 +299,8 @@ PUBLIC ??_C@_07KNNCJAOA@?$CFs?3?5?$CFu?6@ ; `string' PUBLIC ??_C@_03OFAPEBGM@?$CFs?6@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' PUBLIC ??_C@_0BO@CAOBBIOC@vector?5iterators?5incompatible@ ; `string' -PUBLIC ??_C@_0GH@HACIOKNJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' -PUBLIC ??_C@_1MO@KFAGNMIJ@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' +PUBLIC ??_C@_0GH@IJJCCHP@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_1MO@MBPFCBOF@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' PUBLIC ??_C@_1NC@CDEGKPGM@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAV?$AAe?$AAc?$AAt?$AAo?$AAr?$AA_?$AAc?$AAo@ ; `string' PUBLIC ??_C@_1EA@DJDGNIII@?$AA?$CC?$AAv?$AAe?$AAc?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' @@ -390,373 +411,409 @@ _BSS ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + 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+70 + 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+70 + 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+75 + DD imagerel $LN3+51 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??2@YAPEAX_KPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+76 + DD imagerel $LN3+53 DD imagerel $unwind$??2@YAPEAX_KPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$__local_stdio_printf_options DD imagerel $LN3 - DD imagerel $LN3+59 + DD imagerel $LN3+44 DD imagerel $unwind$__local_stdio_printf_options pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_vfprintf_l DD imagerel $LN3 - DD imagerel $LN3+126 + DD imagerel $LN3+103 DD imagerel $unwind$_vfprintf_l pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$printf DD imagerel $LN3 - DD imagerel $LN3+214 + DD imagerel $LN3+216 DD imagerel $unwind$printf pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?max@?$numeric_limits@_J@std@@SA_JXZ DD imagerel $LN3 - DD imagerel $LN3+62 + DD imagerel $LN3+47 DD imagerel $unwind$?max@?$numeric_limits@_J@std@@SA_JXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0exception@std@@QEAA@QEBDH@Z DD imagerel $LN3 - DD imagerel $LN3+139 + DD imagerel $LN3+116 DD imagerel $unwind$??0exception@std@@QEAA@QEBDH@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0exception@std@@QEAA@AEBV01@@Z DD imagerel $LN3 - DD imagerel $LN3+146 + DD imagerel $LN3+123 DD imagerel $unwind$??0exception@std@@QEAA@AEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1exception@std@@UEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+101 + DD imagerel $LN3+77 DD imagerel $unwind$??1exception@std@@UEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?what@exception@std@@UEBAPEBDXZ DD imagerel $LN5 - DD imagerel $LN5+119 + DD imagerel $LN5+96 DD imagerel $unwind$?what@exception@std@@UEBAPEBDXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_Gexception@std@@UEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+105 + DD imagerel $LN4+82 DD imagerel $unwind$??_Gexception@std@@UEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0bad_alloc@std@@AEAA@QEBD@Z DD imagerel $LN3 - DD imagerel $LN3+118 + DD imagerel $LN3+95 DD imagerel $unwind$??0bad_alloc@std@@AEAA@QEBD@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1bad_alloc@std@@UEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+64 + DD imagerel $LN3+41 DD imagerel $unwind$??1bad_alloc@std@@UEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0bad_alloc@std@@QEAA@AEBV01@@Z DD imagerel $LN3 - DD imagerel $LN3+100 + DD imagerel $LN3+77 DD imagerel $unwind$??0bad_alloc@std@@QEAA@AEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_Gbad_alloc@std@@UEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+105 + DD imagerel $LN4+82 DD imagerel $unwind$??_Gbad_alloc@std@@UEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0bad_array_new_length@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+107 + DD imagerel $LN3+84 DD imagerel $unwind$??0bad_array_new_length@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1bad_array_new_length@std@@UEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+64 + DD imagerel $LN3+41 DD imagerel $unwind$??1bad_array_new_length@std@@UEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0bad_array_new_length@std@@QEAA@AEBV01@@Z DD imagerel $LN3 - DD imagerel $LN3+100 + DD imagerel $LN3+77 DD imagerel $unwind$??0bad_array_new_length@std@@QEAA@AEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_Gbad_array_new_length@std@@UEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+105 + DD imagerel $LN4+82 DD imagerel $unwind$??_Gbad_array_new_length@std@@UEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Throw_bad_array_new_length@std@@YAXXZ DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+68 DD imagerel $unwind$?_Throw_bad_array_new_length@std@@YAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+76 + DD imagerel $LN3+53 DD imagerel $unwind$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD imagerel $LN21 - DD imagerel $LN21+476 + DD imagerel $LN21+453 DD imagerel $unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DD imagerel $LN3 - DD imagerel $LN3+108 + DD imagerel $LN3+85 DD imagerel $unwind$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_Container_base12@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+85 + DD imagerel $LN3+62 DD imagerel $unwind$??0_Container_base12@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN7 - DD imagerel $LN7+233 +$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$??0_Iterator_base12@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+100 + DD imagerel $LN3+77 DD imagerel $unwind$??0_Iterator_base12@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_Iterator_base12@std@@QEAA@AEBU01@@Z DD imagerel $LN3 - DD imagerel $LN3+124 + DD imagerel $LN3+101 DD imagerel $unwind$??0_Iterator_base12@std@@QEAA@AEBU01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z DD imagerel $LN6 - DD imagerel $LN6+229 + DD imagerel $LN6+127 DD imagerel $unwind$??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1_Iterator_base12@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+150 + DD imagerel $LN3+53 DD imagerel $unwind$??1_Iterator_base12@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z DD imagerel $LN6 - DD imagerel $LN6+282 + DD imagerel $LN6+116 DD imagerel $unwind$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ DD imagerel $LN4 + DD imagerel $LN4+66 + DD imagerel $unwind$?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ DD imagerel $LN5 - DD imagerel $LN5+117 + DD imagerel $LN5+94 DD imagerel $unwind$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ DD imagerel $LN15 - DD imagerel $LN15+299 - DD imagerel $unwind$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ +$pdata$?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z DD imagerel $LN4 + DD imagerel $LN4+128 + DD imagerel $unwind$?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z DD imagerel $LN3 + DD imagerel $LN3+163 + DD imagerel $unwind$?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ DD imagerel $LN14 + DD imagerel $LN14+267 + DD imagerel $unwind$?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ DD imagerel $LN3 + DD imagerel $LN3+151 + DD imagerel $unwind$?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z DD imagerel $LN3 - DD imagerel $LN3+143 + DD imagerel $LN3+127 DD imagerel $unwind$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DD imagerel $LN5 - DD imagerel $LN5+118 + DD imagerel $LN5+95 DD imagerel $unwind$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DD imagerel $LN3 - DD imagerel $LN3+57 + DD imagerel $LN3+42 DD imagerel $unwind$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + 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+165 + 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+223 + DD imagerel $LN7+200 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?hex@std@@YAAEAVios_base@1@AEAV21@@Z DD imagerel $LN3 - DD imagerel $LN3+95 + DD imagerel $LN3+72 DD imagerel $unwind$?hex@std@@YAAEAVios_base@1@AEAV21@@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+379 + 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+379 + 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$xed_iform_to_iclass DD imagerel xed_iform_to_iclass - DD imagerel xed_iform_to_iclass+99 + DD imagerel xed_iform_to_iclass+77 DD imagerel $unwind$xed_iform_to_iclass pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_operand_type DD imagerel xed_operand_type - DD imagerel xed_operand_type+75 + DD imagerel xed_operand_type+52 DD imagerel $unwind$xed_operand_type pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_inst_iform_enum DD imagerel xed_inst_iform_enum - DD imagerel xed_inst_iform_enum+75 + DD imagerel xed_inst_iform_enum+52 DD imagerel $unwind$xed_inst_iform_enum pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_inst_iclass DD imagerel xed_inst_iclass - DD imagerel xed_inst_iclass+83 + DD imagerel xed_inst_iclass+60 DD imagerel $unwind$xed_inst_iclass pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_inst_category DD imagerel xed_inst_category - DD imagerel xed_inst_category+83 + DD imagerel xed_inst_category+60 DD imagerel $unwind$xed_inst_category pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_inst_noperands DD imagerel xed_inst_noperands - DD imagerel xed_inst_noperands+74 + DD imagerel xed_inst_noperands+51 DD imagerel $unwind$xed_inst_noperands pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_relbr DD imagerel xed_relbr - DD imagerel xed_relbr+182 + DD imagerel xed_relbr+184 DD imagerel $unwind$xed_relbr pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_inst1 DD imagerel xed_inst1 - DD imagerel xed_inst1+207 + DD imagerel xed_inst1+184 DD imagerel $unwind$xed_inst1 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_decoded_inst_inst DD imagerel xed_decoded_inst_inst - DD imagerel xed_decoded_inst_inst+78 + DD imagerel xed_decoded_inst_inst+55 DD imagerel $unwind$xed_decoded_inst_inst pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_decoded_inst_get_category DD imagerel xed_decoded_inst_get_category - DD imagerel xed_decoded_inst_get_category+89 + DD imagerel xed_decoded_inst_get_category+66 DD imagerel $unwind$xed_decoded_inst_get_category pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_decoded_inst_get_iclass DD imagerel xed_decoded_inst_get_iclass - DD imagerel xed_decoded_inst_get_iclass+89 + DD imagerel xed_decoded_inst_get_iclass+66 DD imagerel $unwind$xed_decoded_inst_get_iclass pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_decoded_inst_noperands DD imagerel xed_decoded_inst_noperands - DD imagerel xed_decoded_inst_noperands+90 + DD imagerel xed_decoded_inst_noperands+67 DD imagerel $unwind$xed_decoded_inst_noperands pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_decoded_inst_set_mode DD imagerel xed_decoded_inst_set_mode - DD imagerel xed_decoded_inst_set_mode+155 + DD imagerel xed_decoded_inst_set_mode+157 DD imagerel $unwind$xed_decoded_inst_set_mode pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_decoded_inst_get_length DD imagerel xed_decoded_inst_get_length - DD imagerel xed_decoded_inst_get_length+78 + DD imagerel xed_decoded_inst_get_length+55 DD imagerel $unwind$xed_decoded_inst_get_length pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_NATIVE_CODE_LINK@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+221 + DD imagerel $LN3+198 DD imagerel $unwind$??0_NATIVE_CODE_LINK@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN4 - DD imagerel $LN4+140 + DD imagerel $LN4+117 DD imagerel $unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z DD imagerel $LN6 - DD imagerel $LN6+261 + DD imagerel $LN6+238 DD imagerel $unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z pdata ENDS ; COMDAT pdata @@ -768,277 +825,271 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1_NATIVE_CODE_LINK@@QEAA@XZ DD imagerel $LN4 - DD imagerel $LN4+114 + DD imagerel $LN4+90 DD imagerel $unwind$??1_NATIVE_CODE_LINK@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+105 + DD imagerel $LN4+82 DD imagerel $unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0?$allocator@K@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$??0?$allocator@K@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD imagerel $LN3 - DD imagerel $LN3+100 + DD imagerel $LN3+77 DD imagerel $unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?allocate@?$allocator@K@std@@QEAAPEAK_K@Z DD imagerel $LN3 - DD imagerel $LN3+89 + DD imagerel $LN3+66 DD imagerel $unwind$?allocate@?$allocator@K@std@@QEAAPEAK_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z DD imagerel $LN3 - DD imagerel $LN3+74 + DD imagerel $LN3+51 DD imagerel $unwind$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+160 + DD imagerel $LN3+137 DD imagerel $unwind$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z DD imagerel $LN3 - DD imagerel $LN3+88 + DD imagerel $LN3+65 DD imagerel $unwind$?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ DD imagerel $LN3 - DD imagerel $LN3+148 + DD imagerel $LN3+125 DD imagerel $unwind$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DD imagerel $LN3 - DD imagerel $LN3+144 + DD imagerel $LN3+121 DD imagerel $unwind$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DD imagerel $LN3 - DD imagerel $LN3+144 + DD imagerel $LN3+121 DD imagerel $unwind$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+52 DD imagerel $unwind$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+52 DD imagerel $unwind$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD imagerel $LN3 - DD imagerel $LN3+98 + DD imagerel $LN3+75 DD imagerel $unwind$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD imagerel $LN3 - DD imagerel $LN3+125 + DD imagerel $LN3+102 DD imagerel $unwind$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD imagerel $LN3 - DD imagerel $LN3+98 + DD imagerel $LN3+75 DD imagerel $unwind$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z DD imagerel $LN3 - DD imagerel $LN3+120 + DD imagerel $LN3+97 DD imagerel $unwind$?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z DD imagerel $LN3 - DD imagerel $LN3+120 + DD imagerel $LN3+97 DD imagerel $unwind$?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z DD imagerel $LN3 - DD imagerel $LN3+142 + DD imagerel $LN3+119 DD imagerel $unwind$?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD imagerel $LN3 - DD imagerel $LN3+108 + DD imagerel $LN3+85 DD imagerel $unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z DD imagerel $LN5 - DD imagerel $LN5+200 + DD imagerel $LN5+168 DD imagerel $unwind$?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z DD imagerel $LN4 - DD imagerel $LN4+322 + DD imagerel $LN4+299 DD imagerel $unwind$?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ DD imagerel $LN3 - DD imagerel $LN3+64 + DD imagerel $LN3+49 DD imagerel $unwind$?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD imagerel $LN9 - DD imagerel $LN9+267 +$pdata$?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD imagerel $LN8 + DD imagerel $LN8+184 + DD imagerel $unwind$?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD imagerel $LN4 + DD imagerel $LN4+177 + DD imagerel $unwind$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA DD imagerel ?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA + DD imagerel ?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA+37 + DD imagerel $unwind$?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD imagerel $LN3 + DD imagerel $LN3+77 DD imagerel $unwind$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z 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+80 + 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$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+80 + DD imagerel $LN3+56 DD imagerel $unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+128 + DD imagerel $LN3+105 DD imagerel $unwind$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@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+71 + 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$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+71 + 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@@QEBAAEBV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_NATIVE_CODE_BLOCK@@QEAA@XZ DD imagerel $LN4 - DD imagerel $LN4+138 + DD imagerel $LN4+115 DD imagerel $unwind$??0_NATIVE_CODE_BLOCK@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN7 - DD imagerel $LN7+241 + DD imagerel $LN7+218 DD imagerel $unwind$?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN7 - DD imagerel $LN7+239 + DD imagerel $LN7+216 DD imagerel $unwind$?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD imagerel $LN5 - DD imagerel $LN5+168 + DD imagerel $LN5+145 DD imagerel $unwind$?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD imagerel $LN5 - DD imagerel $LN5+171 + DD imagerel $LN5+148 DD imagerel $unwind$?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN6 - DD imagerel $LN6+150 + DD imagerel $LN6+127 DD imagerel $unwind$?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcCalcBlockSize@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN7 - DD imagerel $LN7+163 + DD imagerel $LN7+140 DD imagerel $unwind$?NcCalcBlockSize@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z DD imagerel $LN8 - DD imagerel $LN8+185 + DD imagerel $LN8+162 DD imagerel $unwind$?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN9 - DD imagerel $LN9+518 + DD imagerel $LN9+491 DD imagerel $unwind$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD imagerel ?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA - DD imagerel ?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA+39 - DD imagerel $unwind$?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD imagerel ?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA - DD imagerel ?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA+39 - DD imagerel $unwind$?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA -pdata ENDS -; COMDAT pdata -pdata SEGMENT $pdata$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z DD imagerel $LN17 - DD imagerel $LN17+675 + DD imagerel $LN17+623 DD imagerel $unwind$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA DD imagerel ?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA - DD imagerel ?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA+59 - DD imagerel $unwind$?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA DD imagerel ?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA - DD imagerel ?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA+59 - DD imagerel $unwind$?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA -pdata ENDS -; COMDAT pdata -pdata SEGMENT $pdata$?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z DD imagerel $LN10 - DD imagerel $LN10+429 + DD imagerel $LN10+406 DD imagerel $unwind$?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z DD imagerel $LN10 - DD imagerel $LN10+412 + DD imagerel $LN10+389 DD imagerel $unwind$?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN18 - DD imagerel $LN18+687 + DD imagerel $LN18+689 DD imagerel $unwind$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata @@ -1050,13 +1101,13 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z DD imagerel $LN23 - DD imagerel $LN23+414 + DD imagerel $LN23+391 DD imagerel $unwind$?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DD imagerel $LN14 - DD imagerel $LN14+495 + DD imagerel $LN14+472 DD imagerel $unwind$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z pdata ENDS ; COMDAT pdata @@ -1074,31 +1125,31 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN12 - DD imagerel $LN12+498 + DD imagerel $LN12+500 DD imagerel $unwind$?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z DD imagerel $LN3 - DD imagerel $LN3+102 + DD imagerel $LN3+79 DD imagerel $unwind$?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z DD imagerel $LN13 - DD imagerel $LN13+300 + DD imagerel $LN13+277 DD imagerel $unwind$?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN21 - DD imagerel $LN21+946 + DD imagerel $LN21+948 DD imagerel $unwind$?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z DD imagerel $LN13 - DD imagerel $LN13+564 + DD imagerel $LN13+541 DD imagerel $unwind$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z pdata ENDS ; COMDAT pdata @@ -1110,103 +1161,103 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z DD imagerel $LN9 - DD imagerel $LN9+280 + DD imagerel $LN9+257 DD imagerel $unwind$?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN10 - DD imagerel $LN10+224 + DD imagerel $LN10+201 DD imagerel $unwind$?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN11 - DD imagerel $LN11+350 + DD imagerel $LN11+327 DD imagerel $unwind$?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN10 - DD imagerel $LN10+361 + DD imagerel $LN10+338 DD imagerel $unwind$?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DD imagerel $LN3 - DD imagerel $LN3+130 + DD imagerel $LN3+107 DD imagerel $unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD imagerel $LN5 - DD imagerel $LN5+141 + DD imagerel $LN5+118 DD imagerel $unwind$??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD imagerel $LN5 - DD imagerel $LN5+124 + DD imagerel $LN5+101 DD imagerel $unwind$??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z DD imagerel $LN12 - DD imagerel $LN12+231 + DD imagerel $LN12+208 DD imagerel $unwind$?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z DD imagerel $LN21 - DD imagerel $LN21+374 + DD imagerel $LN21+351 DD imagerel $unwind$?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z DD imagerel $LN3 - DD imagerel $LN3+92 + DD imagerel $LN3+69 DD imagerel $unwind$?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+64 + DD imagerel $LN3+41 DD imagerel $unwind$??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z DD imagerel $LN3 - DD imagerel $LN3+105 - DD imagerel $unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z +$pdata$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z DD imagerel $LN3 + DD imagerel $LN3+82 + DD imagerel $unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ DD imagerel $LN3 - DD imagerel $LN3+80 + DD imagerel $LN3+57 DD imagerel $unwind$?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+64 + DD imagerel $LN3+41 DD imagerel $unwind$??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z DD imagerel $LN3 - DD imagerel $LN3+83 - DD imagerel $unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z +$pdata$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z DD imagerel $LN3 + DD imagerel $LN3+60 + DD imagerel $unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DD imagerel $LN3 - DD imagerel $LN3+95 + DD imagerel $LN3+72 DD imagerel $unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z DD imagerel $LN7 - DD imagerel $LN7+264 + DD imagerel $LN7+241 DD imagerel $unwind$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z pdata ENDS ; COMDAT pdata @@ -1224,91 +1275,91 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$log2@H$0A@@@YANH@Z DD imagerel $LN3 - DD imagerel $LN3+77 + DD imagerel $LN3+54 DD imagerel $unwind$??$log2@H$0A@@@YANH@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DD imagerel $LN23 - DD imagerel $LN23+1095 - DD imagerel $unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z +$pdata$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z DD imagerel $LN3 + DD imagerel $LN3+117 + DD imagerel $unwind$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD imagerel ?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA - DD imagerel ?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA+36 - DD imagerel $unwind$?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA +$pdata$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD imagerel ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA - DD imagerel ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA+91 - DD imagerel $unwind$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA +$pdata$??0?$_Fillobj@D@std@@QEAA@D@Z DD imagerel $LN3 + DD imagerel $LN3+68 + DD imagerel $unwind$??0?$_Fillobj@D@std@@QEAA@D@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z DD imagerel $LN3 - DD imagerel $LN3+140 - DD imagerel $unwind$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z +$pdata$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z DD imagerel $LN3 + DD imagerel $LN3+110 + DD imagerel $unwind$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z DD imagerel $LN3 - DD imagerel $LN3+94 - DD imagerel $unwind$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z +$pdata$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DD imagerel $LN23 + DD imagerel $LN23+1097 + DD imagerel $unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??0?$_Fillobj@D@std@@QEAA@D@Z DD imagerel $LN3 - DD imagerel $LN3+91 - DD imagerel $unwind$??0?$_Fillobj@D@std@@QEAA@D@Z +$pdata$?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD imagerel ?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA + DD imagerel ?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA+36 + DD imagerel $unwind$?dtor$0@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z DD imagerel $LN3 - DD imagerel $LN3+133 - DD imagerel $unwind$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z +$pdata$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD imagerel ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA + DD imagerel ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA+91 + DD imagerel $unwind$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z DD imagerel $LN4 - DD imagerel $LN4+205 - DD imagerel $unwind$??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z +$pdata$??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z DD imagerel $LN4 + DD imagerel $LN4+182 + DD imagerel $unwind$??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$forward@AEBK@std@@YAAEBKAEBK@Z DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$??$forward@AEBK@std@@YAAEBKAEBK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z DD imagerel $LN3 - DD imagerel $LN3+234 - DD imagerel $unwind$??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z +$pdata$??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z DD imagerel $LN3 + DD imagerel $LN3+211 + DD imagerel $unwind$??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Unfancy@K@std@@YAPEAKPEAK@Z DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$??$_Unfancy@K@std@@YAPEAKPEAK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z DD imagerel $LN3 - DD imagerel $LN3+121 + DD imagerel $LN3+106 DD imagerel $unwind$??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z DD imagerel $LN13 - DD imagerel $LN13+616 + DD imagerel $LN13+593 DD imagerel $unwind$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z pdata ENDS ; COMDAT pdata @@ -1320,43 +1371,43 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z DD imagerel $LN3 - DD imagerel $LN3+89 + DD imagerel $LN3+66 DD imagerel $unwind$?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@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+76 + 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$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DD imagerel $LN3 - DD imagerel $LN3+102 + DD imagerel $LN3+79 DD imagerel $unwind$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z DD imagerel $LN3 - DD imagerel $LN3+156 + DD imagerel $LN3+133 DD imagerel $unwind$??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD imagerel $LN4 - DD imagerel $LN4+171 + DD imagerel $LN4+148 DD imagerel $unwind$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD imagerel $LN4 - DD imagerel $LN4+143 + DD imagerel $LN4+120 DD imagerel $unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD imagerel $LN7 - DD imagerel $LN7+284 + DD imagerel $LN7+261 DD imagerel $unwind$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z pdata ENDS ; COMDAT pdata @@ -1368,135 +1419,213 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD imagerel $LN6 - DD imagerel $LN6+139 + DD imagerel $LN6+116 DD imagerel $unwind$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ DD imagerel $LN3 - DD imagerel $LN3+75 + DD imagerel $LN3+52 DD imagerel $unwind$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$min@_K@std@@YAAEB_KAEB_K0@Z DD imagerel $LN5 - DD imagerel $LN5+142 + DD imagerel $LN5+119 DD imagerel $unwind$??$min@_K@std@@YAAEB_KAEB_K0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@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+75 + 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$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z DD imagerel $LN4 - DD imagerel $LN4+114 + DD imagerel $LN4+91 DD imagerel $unwind$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z DD imagerel $LN5 - DD imagerel $LN5+117 + DD imagerel $LN5+94 DD imagerel $unwind$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD imagerel $LN4 - DD imagerel $LN4+121 + DD imagerel $LN4+98 DD imagerel $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z DD imagerel $LN3 + DD imagerel $LN3+48 + DD imagerel $unwind$??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z DD imagerel $LN3 - DD imagerel $LN3+88 + DD imagerel $LN3+65 DD imagerel $unwind$??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD imagerel $LN3 - DD imagerel $LN3+76 - DD imagerel $unwind$??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z +$pdata$??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD imagerel $LN3 + DD imagerel $LN3+53 + DD imagerel $unwind$??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD imagerel $LN3 - DD imagerel $LN3+76 - DD imagerel $unwind$??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z +$pdata$??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD imagerel $LN3 + DD imagerel $LN3+53 + DD imagerel $unwind$??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z DD imagerel $LN3 - DD imagerel $LN3+127 + DD imagerel $LN3+104 DD imagerel $unwind$??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z DD imagerel $LN3 - DD imagerel $LN3+91 + DD imagerel $LN3+73 DD imagerel $unwind$??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z DD imagerel $LN3 + DD imagerel $LN3+48 + DD imagerel $unwind$??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z DD imagerel $LN13 - DD imagerel $LN13+300 + DD imagerel $LN13+277 DD imagerel $unwind$??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DD imagerel $LN3 - DD imagerel $LN3+168 +$pdata$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DD imagerel $LN7 + DD imagerel $LN7+342 DD imagerel $unwind$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA DD imagerel ?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA + DD imagerel ?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA+36 + DD imagerel $unwind$?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$??$_Get_size_of_n@$03@std@@YA_K_K@Z DD imagerel $LN4 - DD imagerel $LN4+117 + DD imagerel $LN4+94 DD imagerel $unwind$??$_Get_size_of_n@$03@std@@YA_K_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z DD imagerel $LN7 - DD imagerel $LN7+146 + DD imagerel $LN7+123 DD imagerel $unwind$??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z DD imagerel $LN3 - DD imagerel $LN3+74 - DD imagerel $unwind$??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z +$pdata$??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z DD imagerel $LN3 + DD imagerel $LN3+48 + DD imagerel $unwind$??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z DD imagerel $LN3 + DD imagerel $LN3+51 + DD imagerel $unwind$??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$move@AEAK@std@@YA$$QEAKAEAK@Z DD imagerel $LN3 + DD imagerel $LN3+48 + DD imagerel $unwind$??$move@AEAK@std@@YA$$QEAKAEAK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z DD imagerel $LN3 - DD imagerel $LN3+156 + DD imagerel $LN3+196 DD imagerel $unwind$??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$??0?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@PEAKAEAV?$allocator@K@1@@Z DD imagerel $LN3 + DD imagerel $LN3+111 + DD imagerel $unwind$??0?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@PEAKAEAV?$allocator@K@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+78 + DD imagerel $unwind$??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Release@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAPEAKXZ DD imagerel $LN3 + DD imagerel $LN3+73 + DD imagerel $unwind$?_Release@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAPEAKXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX_K@Z DD imagerel $LN3 + DD imagerel $LN3+50 + DD imagerel $unwind$?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Emplace_back@K@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX$$QEAK@Z DD imagerel $LN3 + DD imagerel $LN3+158 + DD imagerel $unwind$??$_Emplace_back@K@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX$$QEAK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z DD imagerel $LN3 - DD imagerel $LN3+71 + DD imagerel $LN3+48 DD imagerel $unwind$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z DD imagerel $LN3 + DD imagerel $LN3+51 + DD imagerel $unwind$??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$forward@K@std@@YA$$QEAKAEAK@Z DD imagerel $LN3 + DD imagerel $LN3+48 + DD imagerel $unwind$??$forward@K@std@@YA$$QEAKAEAK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z DD imagerel $LN3 + DD imagerel $LN3+106 + DD imagerel $unwind$??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z +pdata ENDS ; COMDAT __real@3ff0000000000000 CONST SEGMENT __real@3ff0000000000000 DQ 03ff0000000000000r ; 1 @@ -1695,9 +1824,9 @@ CONST SEGMENT DB 'C', 00H, 'o', 00H, 'm', 00H, 'p', 00H, 'a', 00H, 't', 00H, 00H DB 00H ; `string' CONST ENDS -; COMDAT ??_C@_1MO@KFAGNMIJ@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ +; COMDAT ??_C@_1MO@MBPFCBOF@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ CONST SEGMENT -??_C@_1MO@KFAGNMIJ@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' +??_C@_1MO@MBPFCBOF@?$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 @@ -1710,16 +1839,16 @@ CONST SEGMENT 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, '7', 00H, '.', 00H, '2', 00H, '9', 00H, '1', 00H - DB '1', 00H, '0', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' + 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, 'v', 00H, 'e', 00H DB 'c', 00H, 't', 00H, 'o', 00H, 'r', 00H, 00H, 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GH@HACIOKNJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GH@IJJCCHP@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GH@HACIOKNJ@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.27.29110\include\vector', 00H ; `string' +??_C@_0GH@IJJCCHP@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\vector', 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BO@CAOBBIOC@vector?5iterators?5incompatible@ CONST SEGMENT @@ -1757,21 +1886,21 @@ CONST SEGMENT ??_C@_0DF@KKBEBOEB@Failed?5to?5validate?5jump?4?5Type?3?5@ DB 'Failed to ' DB 'validate jump. Type: %s, Displacement: %d', 0aH, 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_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.27.29110\include\xlocnum', 00H ; `string' + 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@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@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.27.29110\include\xlocale', 00H ; `string' +??_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@_1DG@PLBPCAEM@?$AA?$CC?$AAI?$AAT?$AAE?$AAR?$AAA?$AAT?$AAO?$AAR?$AA?5?$AAL?$AAI?$AAS?$AAT?$AA?5@ CONST SEGMENT @@ -1782,15 +1911,16 @@ CONST SEGMENT DB 'P', 00H, 'T', 00H, 'E', 00H, 'D', 00H, '!', 00H, '"', 00H, 00H DB 00H ; `string' CONST ENDS -; COMDAT ??_C@_1EE@KLDMFDFL@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ +; COMDAT ??_C@_1FG@EMKODCE@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ CONST SEGMENT -??_C@_1EE@KLDMFDFL@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ DB 's' +??_C@_1FG@EMKODCE@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ DB 's' DB 00H, 't', 00H, 'd', 00H, ':', 00H, ':', 00H, '_', 00H, 'I', 00H DB 't', 00H, 'e', 00H, 'r', 00H, 'a', 00H, 't', 00H, 'o', 00H, 'r' DB 00H, '_', 00H, 'b', 00H, 'a', 00H, 's', 00H, 'e', 00H, '1', 00H DB '2', 00H, ':', 00H, ':', 00H, '_', 00H, 'O', 00H, 'r', 00H, 'p' DB 00H, 'h', 00H, 'a', 00H, 'n', 00H, '_', 00H, 'm', 00H, 'e', 00H - DB 00H, 00H ; `string' + DB '_', 00H, 'u', 00H, 'n', 00H, 'l', 00H, 'o', 00H, 'c', 00H, 'k' + DB 00H, 'e', 00H, 'd', 00H, 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BJ@LFDBABJJ@ITERATOR?5LIST?5CORRUPTED?$CB@ CONST SEGMENT @@ -1814,9 +1944,9 @@ CONST SEGMENT 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@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ +; 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@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' +??_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 @@ -1829,16 +1959,16 @@ CONST SEGMENT 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, '7', 00H, '.', 00H, '2', 00H, '9', 00H, '1', 00H - DB '1', 00H, '0', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' + 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@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_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.27.29110\include\xmemory', 00H ; `string' + DB 'ols\MSVC\14.29.30037\include\xmemory', 00H ; `string' CONST ENDS ; COMDAT ??_C@_02DKCKIIND@?$CFs@ CONST SEGMENT @@ -1850,7 +1980,7 @@ CONST SEGMENT 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 084H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var +?__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 _CT??_R0?AVexception@std@@@8??0exception@std@@QEAA@AEBV01@@Z24 xdata$x SEGMENT @@ -1942,238 +2072,301 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z DB 060H - DD imagerel $ip2state$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z +$unwind$??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z DD 025051d01H + DD 0118231dH + DD 070110021H + DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z DD 025052a19H +$unwind$??$forward@K@std@@YA$$QEAKAEAK@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z DD 025053401H - DD 0118231dH - DD 07011002dH - DD 05010H +$unwind$??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z DD 025052a01H +$unwind$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z DD 025053901H - DD 011d2322H - DD 07016001dH - DD 05015H +$unwind$??$_Emplace_back@K@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX$$QEAK@Z DD 025051801H + DD 01132318H + DD 0700c0021H + DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Get_size_of_n@$03@std@@YA_K_K@Z DD 025052a01H - DD 010e2313H - DD 070070025H - DD 05006H +$unwind$?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX_K@Z DD 05051601H + DD 01130316H + DD 0700c0019H + DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DD 025053901H - DD 011d2322H - DD 070160025H - DD 05015H +$unwind$?_Release@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAPEAKXZ DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z DD 035052a01H - DD 010e3313H - DD 07007002bH +$unwind$??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ DD 025051301H + DD 010e2313H + DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z DD 025052f01H - DD 01132318H - DD 0700c001dH - DD 0500bH +$unwind$??0?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@PEAKAEAV?$allocator@K@1@@Z DD 025051d01H + DD 0118231dH + DD 07011001dH + DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z DD 025053401H +$unwind$??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z DD 025051d01H DD 0118231dH - DD 070110021H + DD 070110039H DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD 025052a01H +$unwind$??$move@AEAK@std@@YA$$QEAKAEAK@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD 025052a01H +$unwind$??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z DD 025052f01H - DD 01132318H - DD 0700c001dH - DD 0500bH +$unwind$??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DB 02H - DB 00H - DB 00H +$unwind$??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z DD 025052201H + DD 011d2322H + DD 07016001dH + DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DB 060H - DD imagerel $ip2state$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z +$unwind$??$_Get_size_of_n@$03@std@@YA_K_K@Z DD 025051301H + DD 010e2313H + DD 070070025H + DD 05006H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 045H + DW 013dH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DD 025052a19H - DD 010e2313H - DD 07007001dH - DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z +$unwind$?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DB 02H +$ip2state$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DB 02H DB 00H DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DB 060H - DD imagerel $ip2state$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z +$stateUnwindMap$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DD 025052a19H - DD 010e2313H - DD 07007001dH - DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z +$cppxdata$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DB 028H + DD imagerel $stateUnwindMap$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z + DD imagerel $ip2state$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H -xdata ENDS +$unwind$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DD 025054c19H + DD 011d2322H + DD 07016002fH + DD 05015H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z + DD 016aH +xdata ENDS +; COMDAT CONST +CONST SEGMENT +??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z$rtcName$0 DB 05fH ; std::_Uninitialized_move > + DB 042H + DB 061H + DB 063H + DB 06bH + DB 06fH + DB 075H + DB 074H + DB 00H + ORG $+7 +??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z$rtcVarDesc DD 068H ; std::_Uninitialized_move > + DD 018H + DQ FLAT:??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z$rtcName$0 + ORG $+48 +??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z$rtcFrameData DD 01H ; std::_Uninitialized_move > + DD 00H + DQ FLAT:??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z$rtcVarDesc +CONST 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 +$unwind$??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z DD 035051301H + DD 010e3313H + DD 07007002bH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025052f19H +$unwind$??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z DD 025051801H 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$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z DD 025052a01H +$unwind$??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z DD 025051d01H + DD 0118231dH + DD 070110021H + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z DD 025052a01H +$unwind$??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD 025051301H DD 010e2313H - DD 070070025H + DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 02H - DB 00H - DB 00H +$unwind$??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z DD 025051801H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DB 060H - DD imagerel $ip2state$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z +$unwind$??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025053419H - DD 0118231dH - DD 07011001dH - DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z +$unwind$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DB 02H +$ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 02H DB 00H DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DB 060H - DD imagerel $ip2state$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z +$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$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DD 025052a19H +$unwind$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$min@_K@std@@YAAEB_KAEB_K0@Z DB 02H - DB 00H - DB 00H +$unwind$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z DD 025051301H + DD 010e2313H + DD 070070025H + DD 05006H +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 -$cppxdata$??$min@_K@std@@YAAEB_KAEB_K0@Z DB 060H - DD imagerel $ip2state$??$min@_K@std@@YAAEB_KAEB_K0@Z +$unwind$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$min@_K@std@@YAAEB_KAEB_K0@Z DD 025052f19H +$unwind$??$min@_K@std@@YAAEB_KAEB_K0@Z DD 025051801H DD 01132318H DD 0700c0021H DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$min@_K@std@@YAAEB_KAEB_K0@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ DD 025052a01H +$unwind$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H @@ -2191,13 +2384,18 @@ $cppxdata$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025052a19H +$unwind$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025051319H DD 010e2313H DD 070070021H DD 05006H DD imagerel __CxxFrameHandler4 DD imagerel $cppxdata$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA DD 031001H @@ -2209,7 +2407,7 @@ xdata SEGMENT $ip2state$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DB 06H DB 00H DB 00H - DB 09eH + DB 'p' DB 02H DB 0f1H, 02H DB 00H @@ -2228,7 +2426,7 @@ $cppxdata$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025052f11H +$unwind$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025051811H DD 01132318H DD 0700c0021H DD 0500bH @@ -2248,7 +2446,7 @@ $cppxdata$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ D xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025052a19H +$unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025051319H DD 010e2313H DD 070070021H DD 05006H @@ -2257,65 +2455,44 @@ $unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025052f01H +$unwind$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025051801H DD 01132318H DD 0700c0021H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z DD 025052f01H +$unwind$??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z DD 025051801H DD 01132318H DD 0700c0025H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DB 060H - DD imagerel $ip2state$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DD 025052e19H +$unwind$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DD 025051701H DD 01122317H DD 0700b001dH DD 0500aH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DB 060H - DD imagerel $ip2state$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025052f19H +$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z DD 025052f01H +$unwind$?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA DD 031001H @@ -2327,7 +2504,7 @@ xdata SEGMENT $ip2state$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z DB 06H DB 00H DB 00H - DB 0c9H, 04H + DB 'm', 04H DB 02H DB 0ddH, 03H DB 00H @@ -2362,7 +2539,7 @@ $cppxdata$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPE xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z DD 025053419H +$unwind$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z DD 025051d19H DD 0118231dH DD 07011004bH DD 05010H @@ -2371,113 +2548,61 @@ $unwind$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAK xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z DD 025053401H +$unwind$??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z DD 025051d01H DD 0118231dH DD 070110021H DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Unfancy@K@std@@YAPEAKPEAK@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$_Unfancy@K@std@@YAPEAKPEAK@Z DB 060H - DD imagerel $ip2state$??$_Unfancy@K@std@@YAPEAKPEAK@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$_Unfancy@K@std@@YAPEAKPEAK@Z DD 025052a19H +$unwind$??$_Unfancy@K@std@@YAPEAKPEAK@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Unfancy@K@std@@YAPEAKPEAK@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z DD 025052f01H +$unwind$??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z DD 025051801H DD 01132318H DD 0700c002bH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$forward@AEBK@std@@YAAEBKAEBK@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$forward@AEBK@std@@YAAEBKAEBK@Z DB 060H - DD imagerel $ip2state$??$forward@AEBK@std@@YAAEBKAEBK@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$forward@AEBK@std@@YAAEBKAEBK@Z DD 025052a19H +$unwind$??$forward@AEBK@std@@YAAEBKAEBK@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$forward@AEBK@std@@YAAEBKAEBK@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z DD 025052f01H +$unwind$??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z DD 025051801H DD 01132318H DD 0700c002bH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z DB 060H - DD imagerel $ip2state$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z DD 025052a19H +$unwind$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z DD 025052f01H - DD 01132318H - DD 0700c001fH - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??0?$_Fillobj@D@std@@QEAA@D@Z DD 025052e01H - DD 01122317H - DD 0700b001dH - DD 0500aH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z DD 025052e01H - DD 01122317H - DD 0700b001dH - DD 0500aH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z DD 025052f01H - DD 01132318H - DD 0700c001fH - DD 0500bH 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 0430H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA DD 031001H @@ -2495,7 +2620,7 @@ xdata SEGMENT $ip2state$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DB 0aH DB 00H DB 00H - DB 0c6H + DB 0caH DB 02H DB 011H, 02H DB 04H @@ -2536,7 +2661,7 @@ $cppxdata$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DD 025053f19H +$unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z DD 025054119H DD 01122317H DD 0700b004bH DD 0500aH @@ -2561,24 +2686,49 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$log2@H$0A@@@YANH@Z DB 02H - DB 00H - DB 00H +$unwind$??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z DD 025051801H + DD 01132318H + DD 0700c001fH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0?$_Fillobj@D@std@@QEAA@D@Z DD 025051701H + DD 01122317H + DD 0700b001dH + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z DD 025051701H + DD 01122317H + DD 0700b001dH + DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??$log2@H$0A@@@YANH@Z DB 060H - DD imagerel $ip2state$??$log2@H$0A@@@YANH@Z +$unwind$??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z DD 025051801H + DD 01132318H + DD 0700c001fH + DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$log2@H$0A@@@YANH@Z DD 035052819H +$unwind$??$log2@H$0A@@@YANH@Z DD 035051201H DD 010d3312H DD 07006001fH DD 05005H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$log2@H$0A@@@YANH@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 xdata xdata SEGMENT $unwind$?dtor$1@?0???$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z@4HA DD 031001H @@ -2596,7 +2746,7 @@ xdata SEGMENT $ip2state$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z DB 08H DB 00H DB 00H - DB 086H + DB 'X' DB 04H DB 'm', 02H DB 02H @@ -2619,7 +2769,7 @@ $cppxdata$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@st xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z DD 025053911H +$unwind$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z DD 025052211H DD 011d2322H DD 070160027H DD 05015H @@ -2628,129 +2778,121 @@ $unwind$??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DD 025053401H +$unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z DD 025052f01H +$unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD 025052a01H +$unwind$??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ DD 025052a01H +$unwind$?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z DD 025052f01H +$unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD 025052a01H +$unwind$??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z DD 025052f01H +$unwind$?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z DD 035052f01H +$unwind$?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z DD 035051801H DD 01133318H DD 0700c0021H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z DD 035052f01H +$unwind$?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z DD 035051801H DD 01133318H DD 0700c0021H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD 025052f01H +$unwind$??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD 025051801H DD 01132318H DD 0700c001fH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD 025052f01H +$unwind$??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD 025051801H DD 01132318H DD 0700c001fH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DB 060H - DD imagerel $ip2state$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DD 025053419H +$unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H +$unwind$?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051301H DD 010e2313H DD 070070035H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H +$unwind$?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051301H DD 010e2313H DD 070070029H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H +$unwind$?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051301H DD 010e2313H DD 07007002dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z DD 025052f01H +$unwind$?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z DD 025051801H DD 01132318H DD 0700c0029H DD 0500bH xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z@4HA DD 031001H @@ -2762,7 +2904,7 @@ xdata SEGMENT $ip2state$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z DB 06H DB 00H DB 00H - DB 0e4H + DB 0b6H DB 02H DB 'p' DB 00H @@ -2781,16 +2923,21 @@ $cppxdata$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z DD 025053411H +$unwind$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z DD 025051d11H DD 0118231dH DD 070110041H DD 05010H DD imagerel __CxxFrameHandler4 DD imagerel $cppxdata$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 037H + DW 039aH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035063c19H +$unwind$?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035063e19H DD 010f3314H DD 0700800e6H DD 050066007H @@ -2914,21 +3061,26 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z DD 025052f01H +$unwind$?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z DD 025051801H DD 01132318H DD 0700c0029H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z DD 025052f01H +$unwind$?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 040H + DW 01dbH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD 025054519H +$unwind$?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD 025054719H DD 0118231dH DD 070110037H DD 05010H @@ -2948,6 +3100,16 @@ CONST SEGMENT DD 00H DQ FLAT:?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@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??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA DD 031001H @@ -2965,7 +3127,7 @@ xdata SEGMENT $ip2state$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DB 0aH DB 00H DB 00H - DB 0b0H + DB 082H DB 02H DB 08aH DB 00H @@ -2990,7 +3152,7 @@ $cppxdata$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DD 035052a11H +$unwind$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DD 035051311H DD 010e3313H DD 07007003bH DD 05006H @@ -2999,11 +3161,21 @@ $unwind$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DD 035052a11H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z DD 025052e01H +$unwind$?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z DD 025051701H DD 01122317H DD 0700b0021H DD 0500aH xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 036H + DW 0298H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD 031001H @@ -3015,7 +3187,7 @@ xdata SEGMENT $ip2state$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 06H DB 00H DB 00H - DB 'q', 07H + DB 'y', 07H DB 02H DB 084H DB 00H @@ -3034,7 +3206,7 @@ $cppxdata$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 025053b19H +$unwind$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 025053d19H DD 010e2313H DD 07007004bH DD 05006H @@ -3070,116 +3242,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z DD 025053401H +$unwind$?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z DD 025051d01H DD 0118231dH DD 070110021H DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z DD 025053401H +$unwind$?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z DD 025051d01H DD 0118231dH DD 070110021H DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA DD 031001H - DD 0700c4210H - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA DD 031001H - DD 0700c4210H - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z DB 0aH - DB 00H - DB 00H - DB '}', 05H - DB 02H - DB 0aeH - DB 04H - DB 0b4H - DB 02H - DB 'B' - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$stateUnwindMap$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z DB 04H - DB 0eH - DD imagerel ?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA - DB 02eH - DD imagerel ?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z DB 028H - DD imagerel $stateUnwindMap$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z - DD imagerel $ip2state$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z DD 025052f11H +$unwind$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z DD 025051801H DD 01132318H - DD 0700c0057H - DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD 031001H - DD 0700c4210H + DD 0700c0055H DD 0500bH xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 036H + DW 01d2H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD 031001H - DD 0700c4210H - DD 0500bH -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DB 0aH - DB 00H - DB 00H - DB 'M', 04H - DB 02H - DB 090H - DB 04H - DB 'N' - DB 02H - DB 01aH - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$stateUnwindMap$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DB 04H - DB 0eH - DD imagerel ?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA - DB 02eH - DD imagerel ?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DB 028H - DD imagerel $stateUnwindMap$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z - DD imagerel $ip2state$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025053b19H +$unwind$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025053d19H DD 010e2313H - DD 070070053H + DD 070070051H DD 05006H - DD imagerel __GSHandlerCheck_EH4 - DD imagerel $cppxdata$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z - DD 0282H + DD imagerel __GSHandlerCheck + DD 0270H xdata ENDS ; COMDAT CONST CONST SEGMENT @@ -3208,374 +3302,271 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z DD 025053301H +$unwind$?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z DD 025051c01H DD 0117231cH DD 070100021H DD 0500fH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcCalcBlockSize@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H +$unwind$?NcCalcBlockSize@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051301H DD 010e2313H DD 070070025H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z DD 025052a01H +$unwind$?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD 025052f01H +$unwind$?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD 025052f01H +$unwind$?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD 025052f01H +$unwind$?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD 025052f01H +$unwind$?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025052a01H +$unwind$??0_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ DB 02H - DB 00H - DB 00H +$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ DB 060H - DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ -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@@QEBAAEBV?$allocator@K@2@XZ DD 025052a19H +$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 - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DB 060H - DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ 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 025052a19H +$unwind$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ DB 060H - DD imagerel $ip2state$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ DD 025052a19H +$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DB 02H - DB 00H - DB 00H +$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 -$cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DB 060H - DD imagerel $ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ +$unwind$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD 025051d01H + DD 0118231dH + DD 07011001dH + DD 05010H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 040H + DB 098H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DD 025052a19H - DD 010e2313H - DD 07007001dH - DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ +$unwind$?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DB 02H +$ip2state$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DB 06H DB 00H DB 00H + DB 0c6H + DB 02H + DB '6' + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DB 060H - DD imagerel $ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ +$stateUnwindMap$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD 025052a19H - DD 010e2313H - DD 07007001dH - DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ +$cppxdata$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DB 028H + DD imagerel $stateUnwindMap$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z + DD imagerel $ip2state$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD 025054519H +$unwind$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD 025054719H DD 0118231dH - DD 070110029H + DD 070110021H DD 05010H - DD imagerel __GSHandlerCheck - DD 0138H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z + DD 0faH xdata ENDS ; COMDAT CONST CONST SEGMENT -?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcName$0 DB 05fH ; std::vector >::_Orphan_range +?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcName$0 DB 05fH ; std::vector >::_Orphan_range_locked DB 04cH DB 06fH DB 063H DB 06bH DB 00H ORG $+10 -?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcVarDesc DD 024H ; std::vector >::_Orphan_range +?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcVarDesc DD 024H ; std::vector >::_Orphan_range_locked DD 04H - DQ FLAT:?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcName$0 + DQ FLAT:?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcName$0 ORG $+48 -?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcFrameData DD 01H ; std::vector >::_Orphan_range +?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcFrameData DD 01H ; std::vector >::_Orphan_range_locked DD 00H - DQ FLAT:?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcVarDesc + DQ FLAT:?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ DD 025051e01H +$unwind$?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD 025051d01H + DD 0118231dH + DD 07011002dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ DD 025050f01H DD 010a230fH DD 07003001dH DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z DD 025053901H +$unwind$?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z DD 025052201H DD 011d2322H DD 07016002fH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z DD 025052f01H +$unwind$?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z DD 025051801H DD 01132318H - DD 0700c0025H + DD 0700c0029H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025053401H +$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z DD 035053901H +$unwind$?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z DD 035052201H DD 011d3322H DD 070160023H DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z DD 025053901H +$unwind$?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z DD 025052201H DD 011d2322H DD 07016001dH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z DD 025053901H +$unwind$?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z DD 025052201H DD 011d2322H DD 07016001dH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 060H - DD imagerel $ip2state$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025052a19H +$unwind$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025051301H DD 010e2313H DD 070070021H DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 060H - DD imagerel $ip2state$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025052a19H +$unwind$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025051301H DD 010e2313H DD 070070025H DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DB 060H - DD imagerel $ip2state$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025052a19H +$unwind$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025051301H DD 010e2313H DD 070070021H DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DB 060H - DD imagerel $ip2state$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DD 025052a19H +$unwind$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DB 060H - DD imagerel $ip2state$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DD 025052a19H +$unwind$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DB 060H - DD imagerel $ip2state$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DD 025052f19H +$unwind$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DD 025051801H DD 01132318H DD 0700c0023H DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DB 060H - DD imagerel $ip2state$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DD 025052f19H +$unwind$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ DD 025051801H DD 01132318H DD 0700c0023H DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT @@ -3590,7 +3581,7 @@ $cppxdata$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ DD 025052a19H +$unwind$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ DD 025051319H DD 010e2313H DD 070070029H DD 05006H @@ -3599,7 +3590,7 @@ $unwind$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ DD 025052a19H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z DD 025052f01H +$unwind$?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH @@ -3617,7 +3608,7 @@ $cppxdata$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DB 060H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025052a19H +$unwind$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025051319H DD 010e2313H DD 070070025H DD 05006H @@ -3626,85 +3617,51 @@ $unwind$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025052a19H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z DB 060H - DD imagerel $ip2state$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z DD 025052a19H +$unwind$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?allocate@?$allocator@K@std@@QEAAPEAK_K@Z DD 025052f01H +$unwind$?allocate@?$allocator@K@std@@QEAAPEAK_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025053401H +$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??0?$allocator@K@std@@QEAA@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??0?$allocator@K@std@@QEAA@XZ DB 060H - DD imagerel $ip2state$??0?$allocator@K@std@@QEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??0?$allocator@K@std@@QEAA@XZ DD 025052a19H +$unwind$??0?$allocator@K@std@@QEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0?$allocator@K@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD 025052e01H +$unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD 025051701H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??1_NATIVE_CODE_LINK@@QEAA@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??1_NATIVE_CODE_LINK@@QEAA@XZ DB 060H - DD imagerel $ip2state$??1_NATIVE_CODE_LINK@@QEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??1_NATIVE_CODE_LINK@@QEAA@XZ DD 025052a19H +$unwind$??1_NATIVE_CODE_LINK@@QEAA@XZ DD 025051301H DD 010e2313H DD 070070021H DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??1_NATIVE_CODE_LINK@@QEAA@XZ xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0???0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z@4HA DD 031001H @@ -3716,7 +3673,7 @@ xdata SEGMENT $ip2state$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z DB 06H DB 00H DB 00H - DB 0a2H + DB 't' DB 02H DB 08dH, 02H DB 00H @@ -3735,7 +3692,7 @@ $cppxdata$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z DD 025053811H +$unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z DD 025052111H DD 011c2321H DD 070150021H DD 05014H @@ -3744,28 +3701,33 @@ $unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z DD 025053811H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z DD 025053301H +$unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051c01H DD 0117231cH DD 07010001dH DD 0500fH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_NATIVE_CODE_LINK@@QEAA@XZ DD 025052a01H +$unwind$??0_NATIVE_CODE_LINK@@QEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_decoded_inst_get_length DD 025052a01H +$unwind$xed_decoded_inst_get_length DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 03fH + DB 084H +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_decoded_inst_set_mode DD 025054419H +$unwind$xed_decoded_inst_set_mode DD 025054619H DD 0117231cH DD 070100021H DD 0500fH @@ -3792,42 +3754,47 @@ xed_decoded_inst_set_mode$rtcFrameData DD 01H CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_decoded_inst_noperands DD 025052a01H +$unwind$xed_decoded_inst_noperands DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_decoded_inst_get_iclass DD 025052a01H +$unwind$xed_decoded_inst_get_iclass DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_decoded_inst_get_category DD 025052a01H +$unwind$xed_decoded_inst_get_category DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_decoded_inst_inst DD 025052a01H +$unwind$xed_decoded_inst_inst DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst1 DD 025063a01H +$unwind$xed_inst1 DD 025062301H DD 011e2323H DD 07017001cH DD 050156016H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 040H + DB 09eH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_relbr DD 025064519H +$unwind$xed_relbr DD 025064719H DD 0118231dH DD 070110026H DD 0500f6010H @@ -3849,84 +3816,89 @@ xed_relbr$rtcFrameData DD 01H CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst_noperands DD 025052a01H +$unwind$xed_inst_noperands DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst_category DD 025052a01H +$unwind$xed_inst_category DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst_iclass DD 025052a01H +$unwind$xed_inst_iclass DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst_iform_enum DD 025052a01H +$unwind$xed_inst_iform_enum DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_operand_type DD 025052a01H +$unwind$xed_operand_type DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_iform_to_iclass DD 025052801H +$unwind$xed_iform_to_iclass DD 025051201H DD 010d2312H DD 070060021H DD 05005H 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 025063501H +$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 025063501H +$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$?hex@std@@YAAEAVios_base@1@AEAV21@@Z DD 025052a01H +$unwind$?hex@std@@YAAEAVios_base@1@AEAV21@@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H +$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 035052a01H +$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 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -3971,553 +3943,343 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DB 060H - DD imagerel $ip2state$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DD 025051e19H +$unwind$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DD 025050f01H DD 010a230fH DD 07003001dH DD 05002H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DB 060H - DD imagerel $ip2state$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DD 025052f19H +$unwind$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DD 025051801H DD 01132318H DD 0700c001fH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z DB 060H - DD imagerel $ip2state$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z DD 025052f19H +$unwind$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z DD 025051801H DD 01132318H DD 0700c0021H DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ DB 060H - DD imagerel $ip2state$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ DD 035052a19H - DD 010e3313H - DD 070070023H - DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ DB 060H - DD imagerel $ip2state$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 036H + DB 07eH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ DD 025052a19H +$unwind$?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ DD 025053d19H DD 010e2313H - DD 07007001fH + DD 070070021H DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z DB 060H - DD imagerel $ip2state$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z DD 025054019H - DD 01132318H - DD 0700c0029H - DD 0500bH - DD imagerel __GSHandlerCheck_EH4 - DD imagerel $cppxdata$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z - DD 013bH + DD imagerel __GSHandlerCheck + DD 0f8H xdata ENDS ; COMDAT CONST CONST SEGMENT -?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z$rtcName$0 DB 05fH ; std::_Iterator_base12::_Adopt - DB 04cH - DB 06fH - DB 063H - DB 06bH - DB 00H - ORG $+2 -?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z$rtcName$1 DB 05fH ; std::_Iterator_base12::_Adopt +?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ$rtcName$0 DB 05fH ; std::_Iterator_base12::_Orphan_me_locked DB 04cH DB 06fH DB 063H DB 06bH DB 00H - ORG $+2 -?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z$rtcVarDesc DD 064H ; std::_Iterator_base12::_Adopt - DD 04H - DQ FLAT:?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z$rtcName$1 - DD 044H + ORG $+10 +?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ$rtcVarDesc DD 024H ; std::_Iterator_base12::_Orphan_me_locked DD 04H - DQ FLAT:?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z$rtcName$0 - ORG $+96 -?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z$rtcFrameData DD 02H ; std::_Iterator_base12::_Adopt + DQ FLAT:?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ$rtcName$0 + ORG $+48 +?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ$rtcFrameData DD 01H ; std::_Iterator_base12::_Orphan_me_locked DD 00H - DQ FLAT:?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z$rtcVarDesc + DQ FLAT:?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??1_Iterator_base12@std@@QEAA@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??1_Iterator_base12@std@@QEAA@XZ DB 060H - DD imagerel $ip2state$??1_Iterator_base12@std@@QEAA@XZ +$unwind$?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ DD 035051301H + DD 010e3313H + DD 070070027H + DD 05006H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 03bH + DB 08aH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1_Iterator_base12@std@@QEAA@XZ DD 025053b19H - DD 010e2313H - DD 070070021H - DD 05006H - DD imagerel __GSHandlerCheck_EH4 - DD imagerel $cppxdata$??1_Iterator_base12@std@@QEAA@XZ - DD 0fbH +$unwind$?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z DD 025054219H + DD 01132318H + DD 0700c0021H + DD 0500bH + DD imagerel __GSHandlerCheck + DD 0f8H xdata ENDS ; COMDAT CONST CONST SEGMENT -??1_Iterator_base12@std@@QEAA@XZ$rtcName$0 DB 05fH ; std::_Iterator_base12::~_Iterator_base12 +?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z$rtcName$0 DB 05fH ; std::_Iterator_base12::_Adopt_locked DB 04cH DB 06fH DB 063H DB 06bH DB 00H ORG $+10 -??1_Iterator_base12@std@@QEAA@XZ$rtcVarDesc DD 024H ; std::_Iterator_base12::~_Iterator_base12 +?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z$rtcVarDesc DD 024H ; std::_Iterator_base12::_Adopt_locked DD 04H - DQ FLAT:??1_Iterator_base12@std@@QEAA@XZ$rtcName$0 + DQ FLAT:?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z$rtcName$0 ORG $+48 -??1_Iterator_base12@std@@QEAA@XZ$rtcFrameData DD 01H ; std::_Iterator_base12::~_Iterator_base12 +?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z$rtcFrameData DD 01H ; std::_Iterator_base12::_Adopt_locked DD 00H - DQ FLAT:??1_Iterator_base12@std@@QEAA@XZ$rtcVarDesc + DQ FLAT:?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z DB 02H - DB 00H - DB 00H +$unwind$?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z DD 025051801H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ DD 025051301H + DD 010e2313H + DD 07007001fH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z DB 060H - DD imagerel $ip2state$??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z +$unwind$?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z DD 025054019H +$unwind$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z DD 025051801H DD 01132318H DD 0700c0021H DD 0500bH - DD imagerel __GSHandlerCheck_EH4 - DD imagerel $cppxdata$??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z - DD 0fbH -xdata ENDS -; COMDAT CONST -CONST SEGMENT -??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z$rtcName$0 DB 05fH ; std::_Iterator_base12::operator= - DB 04cH - DB 06fH - DB 063H - DB 06bH - DB 00H - ORG $+10 -??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z$rtcVarDesc DD 024H ; std::_Iterator_base12::operator= - DD 04H - DQ FLAT:??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z$rtcName$0 - ORG $+48 -??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z$rtcFrameData DD 01H ; std::_Iterator_base12::operator= - DD 00H - DQ FLAT:??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z$rtcVarDesc -CONST ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??0_Iterator_base12@std@@QEAA@AEBU01@@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??0_Iterator_base12@std@@QEAA@AEBU01@@Z DB 060H - DD imagerel $ip2state$??0_Iterator_base12@std@@QEAA@AEBU01@@Z +$unwind$??1_Iterator_base12@std@@QEAA@XZ DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_Iterator_base12@std@@QEAA@AEBU01@@Z DD 025052f19H +$unwind$??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0_Iterator_base12@std@@QEAA@AEBU01@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??0_Iterator_base12@std@@QEAA@XZ DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??0_Iterator_base12@std@@QEAA@XZ DB 060H - DD imagerel $ip2state$??0_Iterator_base12@std@@QEAA@XZ +$unwind$??0_Iterator_base12@std@@QEAA@AEBU01@@Z DD 025051801H + DD 01132318H + DD 0700c001dH + DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_Iterator_base12@std@@QEAA@XZ DD 025052a19H +$unwind$??0_Iterator_base12@std@@QEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0_Iterator_base12@std@@QEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?_Orphan_all@_Container_base12@std@@QEAAXXZ DB 02H - DB 00H - DB 00H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 036H + DB 07eH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DB 060H - DD imagerel $ip2state$?_Orphan_all@_Container_base12@std@@QEAAXXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025053b19H +$unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD 025053d19H DD 010e2313H - DD 070070025H + DD 070070021H DD 05006H - DD imagerel __GSHandlerCheck_EH4 - DD imagerel $cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ - DD 011bH + DD imagerel __GSHandlerCheck + DD 0f8H xdata ENDS ; COMDAT CONST CONST SEGMENT -?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all +?_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@_Container_base12@std@@QEAAXXZ$rtcVarDesc DD 024H ; std::_Container_base12::_Orphan_all +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc DD 024H ; std::_Container_base12::_Orphan_all_locked DD 04H - DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 + DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcName$0 ORG $+48 -?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all_locked DD 00H - DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcVarDesc + DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??0_Container_base12@std@@QEAA@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??0_Container_base12@std@@QEAA@XZ DB 060H - DD imagerel $ip2state$??0_Container_base12@std@@QEAA@XZ +$unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD 025051301H + DD 010e2313H + DD 070070021H + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_Container_base12@std@@QEAA@XZ DD 025052a19H +$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0_Container_base12@std@@QEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DB 060H - DD imagerel $ip2state$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z +$unwind$??0_Container_base12@std@@QEAA@XZ DD 025051301H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DD 025052f19H +$unwind$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035052f01H +$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035051801H DD 01133318H DD 0700c002fH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z DD 025052a01H +$unwind$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Throw_bad_array_new_length@std@@YAXXZ DD 025051e01H +$unwind$?_Throw_bad_array_new_length@std@@YAXXZ DD 025050f01H DD 010a230fH DD 070030023H DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_Gbad_array_new_length@std@@UEAAPEAXI@Z DD 025052e01H +$unwind$??_Gbad_array_new_length@std@@UEAAPEAXI@Z DD 025051701H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0bad_array_new_length@std@@QEAA@AEBV01@@Z DD 025052f01H +$unwind$??0bad_array_new_length@std@@QEAA@AEBV01@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1bad_array_new_length@std@@UEAA@XZ DD 025052a01H +$unwind$??1bad_array_new_length@std@@UEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??0bad_array_new_length@std@@QEAA@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??0bad_array_new_length@std@@QEAA@XZ DB 060H - DD imagerel $ip2state$??0bad_array_new_length@std@@QEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??0bad_array_new_length@std@@QEAA@XZ DD 025052a19H +$unwind$??0bad_array_new_length@std@@QEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0bad_array_new_length@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_Gbad_alloc@std@@UEAAPEAXI@Z DD 025052e01H +$unwind$??_Gbad_alloc@std@@UEAAPEAXI@Z DD 025051701H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0bad_alloc@std@@QEAA@AEBV01@@Z DD 025052f01H +$unwind$??0bad_alloc@std@@QEAA@AEBV01@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1bad_alloc@std@@UEAA@XZ DD 025052a01H +$unwind$??1bad_alloc@std@@UEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??0bad_alloc@std@@AEAA@QEBD@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??0bad_alloc@std@@AEAA@QEBD@Z DB 060H - DD imagerel $ip2state$??0bad_alloc@std@@AEAA@QEBD@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??0bad_alloc@std@@AEAA@QEBD@Z DD 025052f19H +$unwind$??0bad_alloc@std@@AEAA@QEBD@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0bad_alloc@std@@AEAA@QEBD@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_Gexception@std@@UEAAPEAXI@Z DD 025052e01H +$unwind$??_Gexception@std@@UEAAPEAXI@Z DD 025051701H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?what@exception@std@@UEBAPEBDXZ DD 025052a01H +$unwind$?what@exception@std@@UEBAPEBDXZ DD 025051301H DD 010e2313H DD 07007001fH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??1exception@std@@UEAA@XZ DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??1exception@std@@UEAA@XZ DB 060H - DD imagerel $ip2state$??1exception@std@@UEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??1exception@std@@UEAA@XZ DD 025052a19H +$unwind$??1exception@std@@UEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??1exception@std@@UEAA@XZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??0exception@std@@QEAA@AEBV01@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??0exception@std@@QEAA@AEBV01@@Z DB 060H - DD imagerel $ip2state$??0exception@std@@QEAA@AEBV01@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0exception@std@@QEAA@AEBV01@@Z DD 025052f19H +$unwind$??0exception@std@@QEAA@AEBV01@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0exception@std@@QEAA@AEBV01@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??0exception@std@@QEAA@QEBDH@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??0exception@std@@QEAA@QEBDH@Z DB 060H - DD imagerel $ip2state$??0exception@std@@QEAA@QEBDH@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0exception@std@@QEAA@QEBDH@Z DD 025053419H +$unwind$??0exception@std@@QEAA@QEBDH@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??0exception@std@@QEAA@QEBDH@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?max@?$numeric_limits@_J@std@@SA_JXZ DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?max@?$numeric_limits@_J@std@@SA_JXZ DB 060H - DD imagerel $ip2state$?max@?$numeric_limits@_J@std@@SA_JXZ -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?max@?$numeric_limits@_J@std@@SA_JXZ DD 025051e19H +$unwind$?max@?$numeric_limits@_J@std@@SA_JXZ DD 025050f01H DD 010a230fH DD 07003001dH DD 05002H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?max@?$numeric_limits@_J@std@@SA_JXZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 045H + DB 0bfH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$printf DD 025054a19H +$unwind$printf DD 025054c19H DD 011d2322H DD 07016002bH DD 05015H @@ -4546,117 +4308,52 @@ printf$rtcFrameData DD 01H CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$_vfprintf_l DD 035053901H +$unwind$_vfprintf_l DD 035052201H DD 011d3322H DD 07016001fH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$__local_stdio_printf_options DD 025051e01H +$unwind$__local_stdio_printf_options DD 025050f01H DD 010a230fH DD 07003001dH DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??2@YAPEAX_KPEAX@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??2@YAPEAX_KPEAX@Z DB 060H - DD imagerel $ip2state$??2@YAPEAX_KPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??2@YAPEAX_KPEAX@Z DD 025052f19H +$unwind$??2@YAPEAX_KPEAX@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??2@YAPEAX_KPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -4666,13 +4363,70 @@ __JustMyCode_Default PROC ; COMDAT __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.27.29110\include\xmemory -; COMDAT ??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z _TEXT SEGMENT -_Ptr$ = 224 -??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z PROC ; std::_Refancy, COMDAT +$T1 = 200 +__formal$ = 256 +_Ptr$ = 264 +<_Args_0>$ = 272 +??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z PROC ; std::_Default_allocator_traits >::construct, COMDAT + +; 707 : static _CONSTEXPR20_DYNALLOC void construct(_Alloc&, _Objty* const _Ptr, _Types&&... _Args) { + +$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 08 01 + 00 00 sub rsp, 264 ; 00000108H + 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 + 00029 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00030 e8 00 00 00 00 call ??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z ; std::_Voidify_iter + 00035 48 8b d0 mov rdx, rax + 00038 b9 04 00 00 00 mov ecx, 4 + 0003d e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new + 00042 48 89 85 c8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 00049 48 8b 8d 10 01 + 00 00 mov rcx, QWORD PTR <_Args_0>$[rbp] + 00050 e8 00 00 00 00 call ??$forward@K@std@@YA$$QEAKAEAK@Z ; std::forward + 00055 48 8b 8d c8 00 + 00 00 mov rcx, QWORD PTR $T1[rbp] + 0005c 8b 00 mov eax, DWORD PTR [rax] + 0005e 89 01 mov DWORD PTR [rcx], eax + +; 708 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 709 : if (_STD is_constant_evaluated()) { +; 710 : _STD construct_at(_Ptr, _STD forward<_Types>(_Args)...); +; 711 : } else +; 712 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 713 : { +; 714 : ::new (_Voidify_iter(_Ptr)) _Objty(_STD forward<_Types>(_Args)...); +; 715 : } +; 716 : } + + 00060 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 +??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z ENDP ; std::_Default_allocator_traits >::construct +_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\type_traits +; COMDAT ??$forward@K@std@@YA$$QEAKAEAK@Z +_TEXT SEGMENT +_Arg$ = 224 +??$forward@K@std@@YA$$QEAKAEAK@Z PROC ; std::forward, COMDAT -; 261 : _Pointer _Refancy(_Pointer _Ptr) noexcept { +; 1443 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -4681,121 +4435,68 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 262 : return _Ptr; + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D1154D4E_type_traits + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Ptr$[rbp] +; 1444 : return static_cast<_Ty&&>(_Arg); + + 0001f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Arg$[rbp] -; 263 : } +; 1445 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 -??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z ENDP ; std::_Refancy + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 +??$forward@K@std@@YA$$QEAKAEAK@Z ENDP ; std::forward _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility -; COMDAT ??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility +; COMDAT ??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z _TEXT SEGMENT -_First_ch$ = 8 -_Last_ch$ = 40 -_Dest_ch$ = 72 -_Count$ = 104 -_First$ = 352 -_Last$ = 360 -_Dest$ = 368 -??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z PROC ; std::_Copy_memmove, COMDAT +_Val$ = 224 +??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z PROC ; std::_To_address, COMDAT -; 4113 : _OutIt _Copy_memmove(_InIt _First, _InIt _Last, _OutIt _Dest) { +; 4074 : _NODISCARD constexpr auto _To_address(const _Iter& _Val) 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 68 01 - 00 00 sub rsp, 360 ; 00000168H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 5a 00 00 00 mov ecx, 90 ; 0000005aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 88 - 01 00 00 mov rcx, QWORD PTR [rsp+392] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 4114 : const char* const _First_ch = const_cast(reinterpret_cast(_First)); - - 00040 48 8b 85 60 01 - 00 00 mov rax, QWORD PTR _First$[rbp] - 00047 48 89 45 08 mov QWORD PTR _First_ch$[rbp], rax - -; 4115 : const char* const _Last_ch = const_cast(reinterpret_cast(_Last)); - - 0004b 48 8b 85 68 01 - 00 00 mov rax, QWORD PTR _Last$[rbp] - 00052 48 89 45 28 mov QWORD PTR _Last_ch$[rbp], rax - -; 4116 : char* const _Dest_ch = const_cast(reinterpret_cast(_Dest)); - - 00056 48 8b 85 70 01 - 00 00 mov rax, QWORD PTR _Dest$[rbp] - 0005d 48 89 45 48 mov QWORD PTR _Dest_ch$[rbp], rax - -; 4117 : const auto _Count = static_cast(_Last_ch - _First_ch); - - 00061 48 8b 45 08 mov rax, QWORD PTR _First_ch$[rbp] - 00065 48 8b 4d 28 mov rcx, QWORD PTR _Last_ch$[rbp] - 00069 48 2b c8 sub rcx, rax - 0006c 48 8b c1 mov rax, rcx - 0006f 48 89 45 68 mov QWORD PTR _Count$[rbp], rax - -; 4118 : _CSTD memmove(_Dest_ch, _First_ch, _Count); - - 00073 4c 8b 45 68 mov r8, QWORD PTR _Count$[rbp] - 00077 48 8b 55 08 mov rdx, QWORD PTR _First_ch$[rbp] - 0007b 48 8b 4d 48 mov rcx, QWORD PTR _Dest_ch$[rbp] - 0007f e8 00 00 00 00 call memmove + 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:__7CE971A6_xutility + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 4119 : return reinterpret_cast<_OutIt>(_Dest_ch + _Count); +; 4075 : _STL_INTERNAL_STATIC_ASSERT(is_pointer_v<_Iter>); +; 4076 : return _Val; - 00084 48 8b 45 68 mov rax, QWORD PTR _Count$[rbp] - 00088 48 8b 4d 48 mov rcx, QWORD PTR _Dest_ch$[rbp] - 0008c 48 03 c8 add rcx, rax - 0008f 48 8b c1 mov rax, rcx + 0001f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Val$[rbp] + 00026 48 8b 00 mov rax, QWORD PTR [rax] -; 4120 : } +; 4077 : } - 00092 48 8d a5 48 01 - 00 00 lea rsp, QWORD PTR [rbp+328] - 00099 5f pop rdi - 0009a 5d pop rbp - 0009b c3 ret 0 -??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z ENDP ; std::_Copy_memmove + 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 +??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z ENDP ; std::_To_address _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility -; COMDAT ??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z _TEXT SEGMENT -_It$ = 224 -??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z PROC ; std::_Get_unwrapped, COMDAT +_Ptr$ = 224 +??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z PROC ; std::_Refancy, COMDAT -; 1229 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { +; 298 : _CONSTEXPR20 _Pointer _Refancy(_Pointer _Ptr) noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -4804,553 +4505,406 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1230 : // unwrap an iterator previously subjected to _Adl_verify_range or otherwise validated -; 1231 : if constexpr (is_pointer_v>) { // special-case pointers and arrays -; 1232 : return _It + 0; + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _It$[rbp] - 0003d 48 8b 00 mov rax, QWORD PTR [rax] +; 299 : return _Ptr; + + 0001f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] -; 1233 : } else if constexpr (_Unwrappable_v<_Iter>) { -; 1234 : return static_cast<_Iter&&>(_It)._Unwrapped(); -; 1235 : } else { -; 1236 : return static_cast<_Iter&&>(_It); -; 1237 : } -; 1238 : } +; 300 : } - 00040 48 8d a5 c8 00 + 00026 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 -??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z ENDP ; std::_Get_unwrapped + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 +??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z ENDP ; std::_Refancy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility -; COMDAT ??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ??$_Emplace_back@K@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX$$QEAK@Z _TEXT SEGMENT -_First$ = 224 -_Last$ = 232 -_Val$ = 240 -__formal$ = 248 -??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z PROC ; std::_Find_unchecked1, COMDAT +tv78 = 192 +tv76 = 200 +tv74 = 208 +this$ = 256 +<_Vals_0>$ = 264 +??$_Emplace_back@K@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX$$QEAK@Z PROC ; std::_Uninitialized_backout_al >::_Emplace_back, COMDAT -; 5130 : _NODISCARD constexpr _InIt _Find_unchecked1(_InIt _First, const _InIt _Last, const _Ty& _Val, false_type) { +; 1610 : _CONSTEXPR20_DYNALLOC void _Emplace_back(_Types&&... _Vals) { // construct a new element at *_Last and increment -$LN7: - 00000 44 88 4c 24 20 mov BYTE PTR [rsp+32], r9b - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 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 e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8b fc mov rdi, rsp - 00025 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00039 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 5131 : // find first matching _Val -; 5132 : for (; _First != _Last; ++_First) { - - 00045 eb 12 jmp SHORT $LN4@Find_unche -$LN2@Find_unche: - 00047 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _First$[rbp] - 0004e 48 83 c0 04 add rax, 4 - 00052 48 89 85 e0 00 - 00 00 mov QWORD PTR _First$[rbp], rax -$LN4@Find_unche: - 00059 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR _Last$[rbp] - 00060 48 39 85 e0 00 - 00 00 cmp QWORD PTR _First$[rbp], rax - 00067 74 18 je SHORT $LN3@Find_unche - -; 5133 : if (*_First == _Val) { - - 00069 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _First$[rbp] - 00070 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR _Val$[rbp] - 00077 8b 09 mov ecx, DWORD PTR [rcx] - 00079 39 08 cmp DWORD PTR [rax], ecx - 0007b 75 02 jne SHORT $LN5@Find_unche - -; 5134 : break; - - 0007d eb 02 jmp SHORT $LN3@Find_unche -$LN5@Find_unche: - -; 5135 : } -; 5136 : } +$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:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0007f eb c6 jmp SHORT $LN2@Find_unche -$LN3@Find_unche: +; 1611 : allocator_traits<_Alloc>::construct(_Al, _Unfancy(_Last), _STD forward<_Types>(_Vals)...); -; 5137 : -; 5138 : return _First; + 00024 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR <_Vals_0>$[rbp] + 0002b e8 00 00 00 00 call ??$forward@K@std@@YA$$QEAKAEAK@Z ; std::forward + 00030 48 89 85 c0 00 + 00 00 mov QWORD PTR tv78[rbp], rax + 00037 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003e 48 8b 48 08 mov rcx, QWORD PTR [rax+8] + 00042 e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy + 00047 48 89 85 c8 00 + 00 00 mov QWORD PTR tv76[rbp], rax + 0004e 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00055 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 00059 48 89 85 d0 00 + 00 00 mov QWORD PTR tv74[rbp], rax + 00060 4c 8b 85 c0 00 + 00 00 mov r8, QWORD PTR tv78[rbp] + 00067 48 8b 95 c8 00 + 00 00 mov rdx, QWORD PTR tv76[rbp] + 0006e 48 8b 8d d0 00 + 00 00 mov rcx, QWORD PTR tv74[rbp] + 00075 e8 00 00 00 00 call ??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z ; std::_Default_allocator_traits >::construct + +; 1612 : ++_Last; - 00081 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _First$[rbp] + 0007a 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00081 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00085 48 83 c0 04 add rax, 4 + 00089 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00090 48 89 41 08 mov QWORD PTR [rcx+8], rax -; 5139 : } +; 1613 : } - 00088 48 8d a5 c8 00 + 00094 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 0009b 5f pop rdi + 0009c 5d pop rbp + 0009d c3 ret 0 +??$_Emplace_back@K@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX$$QEAK@Z ENDP ; std::_Uninitialized_backout_al >::_Emplace_back +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX_K@Z +_TEXT SEGMENT +this$ = 224 +classSize$ = 232 +?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX_K@Z PROC ; std::_Uninitialized_backout_al >::__autoclassinit2, 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 c8 00 + 00 00 sub rsp, 200 ; 000000c8H + 00013 48 8b ec mov rbp, rsp + 00016 48 8b bd e0 00 + 00 00 mov rdi, QWORD PTR this$[rbp] + 0001d 33 c0 xor eax, eax + 0001f 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR classSize$[rbp] + 00026 f3 aa rep stosb + 00028 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0008f 5f pop rdi - 00090 5d pop rbp - 00091 c3 ret 0 -??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z ENDP ; std::_Find_unchecked1 + 0002f 5f pop rdi + 00030 5d pop rbp + 00031 c3 ret 0 +?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX_K@Z ENDP ; std::_Uninitialized_backout_al >::__autoclassinit2 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory -; COMDAT ??$_Get_size_of_n@$03@std@@YA_K_K@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ?_Release@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAPEAKXZ _TEXT SEGMENT -_Overflow_is_possible$ = 4 -_Max_possible$1 = 40 -_Count$ = 288 -??$_Get_size_of_n@$03@std@@YA_K_K@Z PROC ; std::_Get_size_of_n<4>, COMDAT +this$ = 224 +?_Release@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAPEAKXZ PROC ; std::_Uninitialized_backout_al >::_Release, COMDAT -; 55 : _NODISCARD constexpr size_t _Get_size_of_n(const size_t _Count) { +; 1615 : constexpr pointer _Release() { // suppress any exception handling backout and return _Last -$LN4: +$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 28 01 - 00 00 sub rsp, 296 ; 00000128H + 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 fc mov rdi, rsp - 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 56 : constexpr bool _Overflow_is_possible = _Ty_size > 1; - - 00036 c6 45 04 01 mov BYTE PTR _Overflow_is_possible$[rbp], 1 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 57 : -; 58 : if _CONSTEXPR_IF (_Overflow_is_possible) { -; 59 : constexpr size_t _Max_possible = static_cast(-1) / _Ty_size; - - 0003a 48 b8 ff ff ff - ff ff ff ff 3f mov rax, 4611686018427387903 ; 3fffffffffffffffH - 00044 48 89 45 28 mov QWORD PTR _Max_possible$1[rbp], rax - -; 60 : if (_Count > _Max_possible) { - - 00048 48 b8 ff ff ff - ff ff ff ff 3f mov rax, 4611686018427387903 ; 3fffffffffffffffH - 00052 48 39 85 20 01 - 00 00 cmp QWORD PTR _Count$[rbp], rax - 00059 76 05 jbe SHORT $LN2@Get_size_o - -; 61 : _Throw_bad_array_new_length(); // multiply overflow +; 1616 : _First = _Last; - 0005b e8 00 00 00 00 call ?_Throw_bad_array_new_length@std@@YAXXZ ; std::_Throw_bad_array_new_length -$LN2@Get_size_o: + 0001f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00026 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0002d 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00031 48 89 08 mov QWORD PTR [rax], rcx -; 62 : } -; 63 : } -; 64 : -; 65 : return _Count * _Ty_size; +; 1617 : return _Last; - 00060 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR _Count$[rbp] - 00067 48 c1 e0 02 shl rax, 2 -$LN3@Get_size_o: + 00034 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003b 48 8b 40 08 mov rax, QWORD PTR [rax+8] -; 66 : } +; 1618 : } - 0006b 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 00072 5f pop rdi - 00073 5d pop rbp - 00074 c3 ret 0 -??$_Get_size_of_n@$03@std@@YA_K_K@Z ENDP ; std::_Get_size_of_n<4> + 0003f 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00046 5f pop rdi + 00047 5d pop rbp + 00048 c3 ret 0 +?_Release@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAPEAKXZ ENDP ; std::_Uninitialized_backout_al >::_Release _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory -; COMDAT ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ _TEXT SEGMENT -_UFirst$ = 8 -_ULast$ = 40 -_First$ = 288 -_Last$ = 296 -_Dest$ = 304 -_Al$ = 312 -??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z PROC ; std::_Uninitialized_move >, COMDAT +this$ = 224 +??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::_Uninitialized_backout_al >::~_Uninitialized_backout_al >, COMDAT -; 1647 : const _InIt _First, const _InIt _Last, _Alloc_ptr_t<_Alloc> _Dest, _Alloc& _Al) { +; 1605 : _CONSTEXPR20_DYNALLOC ~_Uninitialized_backout_al() { $LN3: - 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 - 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 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 28 01 - 00 00 sub rsp, 296 ; 00000128H - 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8b fc mov rdi, rsp - 00025 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 00039 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 1648 : // move [_First, _Last) to raw _Dest, using _Al -; 1649 : // note: only called internally from elsewhere in the STL -; 1650 : using _Ptrval = typename _Alloc::value_type*; -; 1651 : auto _UFirst = _Get_unwrapped(_First); +; 1606 : _Destroy_range(_First, _Last, _Al); - 00045 48 8d 8d 20 01 - 00 00 lea rcx, QWORD PTR _First$[rbp] - 0004c e8 00 00 00 00 call ??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z ; std::_Get_unwrapped - 00051 48 89 45 08 mov QWORD PTR _UFirst$[rbp], rax + 0001f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00026 4c 8b 40 10 mov r8, QWORD PTR [rax+16] + 0002a 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00031 48 8b 50 08 mov rdx, QWORD PTR [rax+8] + 00035 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003c 48 8b 08 mov rcx, QWORD PTR [rax] + 0003f e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > -; 1652 : const auto _ULast = _Get_unwrapped(_Last); +; 1607 : } - 00055 48 8d 8d 28 01 - 00 00 lea rcx, QWORD PTR _Last$[rbp] - 0005c e8 00 00 00 00 call ??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z ; std::_Get_unwrapped - 00061 48 89 45 28 mov QWORD PTR _ULast$[rbp], rax + 00044 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0004b 5f pop rdi + 0004c 5d pop rbp + 0004d c3 ret 0 +??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ ENDP ; std::_Uninitialized_backout_al >::~_Uninitialized_backout_al > +_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 ??0?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@PEAKAEAV?$allocator@K@1@@Z +_TEXT SEGMENT +this$ = 224 +_Dest$ = 232 +_Al_$ = 240 +??0?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@PEAKAEAV?$allocator@K@1@@Z PROC ; std::_Uninitialized_backout_al >::_Uninitialized_backout_al >, COMDAT -; 1653 : if constexpr (conjunction_v::_Really_trivial>, -; 1654 : _Uses_default_construct<_Alloc, _Ptrval, decltype(_STD move(*_UFirst))>>) { -; 1655 : _Copy_memmove(_UFirst, _ULast, _Unfancy(_Dest)); +; 1600 : : _First(_Dest), _Last(_Dest), _Al(_Al_) {} - 00065 48 8b 8d 30 01 +$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 + 00029 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00030 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Dest$[rbp] - 0006c e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy - 00071 4c 8b c0 mov r8, rax - 00074 48 8b 55 28 mov rdx, QWORD PTR _ULast$[rbp] - 00078 48 8b 4d 08 mov rcx, QWORD PTR _UFirst$[rbp] - 0007c e8 00 00 00 00 call ??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z ; std::_Copy_memmove - -; 1656 : return _Dest + (_ULast - _UFirst); - - 00081 48 8b 45 08 mov rax, QWORD PTR _UFirst$[rbp] - 00085 48 8b 4d 28 mov rcx, QWORD PTR _ULast$[rbp] - 00089 48 2b c8 sub rcx, rax - 0008c 48 8b c1 mov rax, rcx - 0008f 48 c1 f8 02 sar rax, 2 - 00093 48 8b 8d 30 01 + 00037 48 89 08 mov QWORD PTR [rax], rcx + 0003a 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00041 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Dest$[rbp] - 0009a 48 8d 04 81 lea rax, QWORD PTR [rcx+rax*4] - -; 1657 : } else { -; 1658 : _Uninitialized_backout_al<_Alloc> _Backout{_Dest, _Al}; -; 1659 : for (; _UFirst != _ULast; ++_UFirst) { -; 1660 : _Backout._Emplace_back(_STD move(*_UFirst)); -; 1661 : } -; 1662 : -; 1663 : return _Backout._Release(); -; 1664 : } -; 1665 : } - - 0009e 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000a5 5f pop rdi - 000a6 5d pop rbp - 000a7 c3 ret 0 -??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z ENDP ; std::_Uninitialized_move > + 00048 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0004c 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00053 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR _Al_$[rbp] + 0005a 48 89 48 10 mov QWORD PTR [rax+16], rcx + 0005e 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00065 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0006c 5f pop rdi + 0006d 5d pop rbp + 0006e c3 ret 0 +??0?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@PEAKAEAV?$allocator@K@1@@Z ENDP ; std::_Uninitialized_backout_al >::_Uninitialized_backout_al > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory -; COMDAT ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility +; COMDAT ??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z _TEXT SEGMENT -_Block_size$ = 8 -_Ptr_container$ = 40 -_Ptr$ = 72 -_Bytes$ = 320 -??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z PROC ; std::_Allocate_manually_vector_aligned, COMDAT +_FirstPtr$ = 8 +_LastPtr$ = 40 +_DestPtr$ = 72 +_First_ch$ = 104 +_Last_ch$ = 136 +_Dest_ch$ = 168 +_Count$ = 200 +_First$ = 448 +_Last$ = 456 +_Dest$ = 464 +??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z PROC ; std::_Copy_memmove, COMDAT -; 113 : __declspec(allocator) void* _Allocate_manually_vector_aligned(const size_t _Bytes) { +; 4153 : _OutCtgIt _Copy_memmove(_CtgIt _First, _CtgIt _Last, _OutCtgIt _Dest) { -$LN13: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 58 01 - 00 00 sub rsp, 344 ; 00000158H - 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8b fc mov rdi, rsp - 00016 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode +$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 c8 01 + 00 00 sub rsp, 456 ; 000001c8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 114 : // allocate _Bytes manually aligned to at least _Big_allocation_alignment -; 115 : const size_t _Block_size = _Non_user_size + _Bytes; +; 4154 : auto _FirstPtr = _To_address(_First); - 00036 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR _Bytes$[rbp] - 0003d 48 83 c0 2f add rax, 47 ; 0000002fH - 00041 48 89 45 08 mov QWORD PTR _Block_size$[rbp], rax + 00029 48 8d 8d c0 01 + 00 00 lea rcx, QWORD PTR _First$[rbp] + 00030 e8 00 00 00 00 call ??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z ; std::_To_address + 00035 48 89 45 08 mov QWORD PTR _FirstPtr$[rbp], rax -; 116 : if (_Block_size <= _Bytes) { +; 4155 : auto _LastPtr = _To_address(_Last); - 00045 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR _Bytes$[rbp] - 0004c 48 39 45 08 cmp QWORD PTR _Block_size$[rbp], rax - 00050 77 05 ja SHORT $LN8@Allocate_m + 00039 48 8d 8d c8 01 + 00 00 lea rcx, QWORD PTR _Last$[rbp] + 00040 e8 00 00 00 00 call ??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z ; std::_To_address + 00045 48 89 45 28 mov QWORD PTR _LastPtr$[rbp], rax -; 117 : _Throw_bad_array_new_length(); // add overflow +; 4156 : auto _DestPtr = _To_address(_Dest); - 00052 e8 00 00 00 00 call ?_Throw_bad_array_new_length@std@@YAXXZ ; std::_Throw_bad_array_new_length -$LN8@Allocate_m: + 00049 48 8d 8d d0 01 + 00 00 lea rcx, QWORD PTR _Dest$[rbp] + 00050 e8 00 00 00 00 call ??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z ; std::_To_address + 00055 48 89 45 48 mov QWORD PTR _DestPtr$[rbp], rax -; 118 : } -; 119 : -; 120 : const uintptr_t _Ptr_container = reinterpret_cast(_Traits::_Allocate(_Block_size)); +; 4157 : const char* const _First_ch = const_cast(reinterpret_cast(_FirstPtr)); - 00057 48 8b 4d 08 mov rcx, QWORD PTR _Block_size$[rbp] - 0005b e8 00 00 00 00 call ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ; std::_Default_allocate_traits::_Allocate - 00060 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax -$LN4@Allocate_m: + 00059 48 8b 45 08 mov rax, QWORD PTR _FirstPtr$[rbp] + 0005d 48 89 45 68 mov QWORD PTR _First_ch$[rbp], rax -; 121 : _STL_VERIFY(_Ptr_container != 0, "invalid argument"); // validate even in release since we're doing p[-1] +; 4158 : const char* const _Last_ch = const_cast(reinterpret_cast(_LastPtr)); - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptr_container$[rbp], 0 - 00069 74 02 je SHORT $LN9@Allocate_m - 0006b eb 6b jmp SHORT $LN10@Allocate_m -$LN9@Allocate_m: -$LN7@Allocate_m: - 0006d 48 8d 05 00 00 - 00 00 lea rax, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ - 00074 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 00079 48 8d 05 00 00 - 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 00080 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 00085 45 33 c9 xor r9d, r9d - 00088 41 b8 79 00 00 - 00 mov r8d, 121 ; 00000079H - 0008e 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00095 b9 02 00 00 00 mov ecx, 2 - 0009a ff 15 00 00 00 - 00 call QWORD PTR __imp__CrtDbgReport - 000a0 83 f8 01 cmp eax, 1 - 000a3 75 03 jne SHORT $LN12@Allocate_m - 000a5 cc int 3 - 000a6 33 c0 xor eax, eax -$LN12@Allocate_m: - 000a8 48 c7 44 24 20 - 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 000b1 41 b9 79 00 00 - 00 mov r9d, 121 ; 00000079H - 000b7 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 000be 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1EO@GFNCMDLA@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA_@ - 000c5 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@ - 000cc ff 15 00 00 00 - 00 call QWORD PTR __imp__invalid_parameter - 000d2 33 c0 xor eax, eax - 000d4 85 c0 test eax, eax - 000d6 75 95 jne SHORT $LN7@Allocate_m -$LN10@Allocate_m: - 000d8 33 c0 xor eax, eax - 000da 85 c0 test eax, eax - 000dc 75 86 jne SHORT $LN4@Allocate_m + 00061 48 8b 45 28 mov rax, QWORD PTR _LastPtr$[rbp] + 00065 48 89 85 88 00 + 00 00 mov QWORD PTR _Last_ch$[rbp], rax -; 122 : void* const _Ptr = reinterpret_cast((_Ptr_container + _Non_user_size) & ~(_Big_allocation_alignment - 1)); +; 4159 : char* const _Dest_ch = const_cast(reinterpret_cast(_DestPtr)); - 000de 48 8b 45 28 mov rax, QWORD PTR _Ptr_container$[rbp] - 000e2 48 83 c0 2f add rax, 47 ; 0000002fH - 000e6 48 83 e0 e0 and rax, -32 ; ffffffffffffffe0H - 000ea 48 89 45 48 mov QWORD PTR _Ptr$[rbp], rax + 0006c 48 8b 45 48 mov rax, QWORD PTR _DestPtr$[rbp] + 00070 48 89 85 a8 00 + 00 00 mov QWORD PTR _Dest_ch$[rbp], rax -; 123 : static_cast(_Ptr)[-1] = _Ptr_container; +; 4160 : const auto _Count = static_cast(_Last_ch - _First_ch); - 000ee b8 08 00 00 00 mov eax, 8 - 000f3 48 6b c0 ff imul rax, rax, -1 - 000f7 48 8b 4d 48 mov rcx, QWORD PTR _Ptr$[rbp] - 000fb 48 8b 55 28 mov rdx, QWORD PTR _Ptr_container$[rbp] - 000ff 48 89 14 01 mov QWORD PTR [rcx+rax], rdx + 00077 48 8b 45 68 mov rax, QWORD PTR _First_ch$[rbp] + 0007b 48 8b 8d 88 00 + 00 00 mov rcx, QWORD PTR _Last_ch$[rbp] + 00082 48 2b c8 sub rcx, rax + 00085 48 8b c1 mov rax, rcx + 00088 48 89 85 c8 00 + 00 00 mov QWORD PTR _Count$[rbp], rax -; 124 : -; 125 : #ifdef _DEBUG -; 126 : static_cast(_Ptr)[-2] = _Big_allocation_sentinel; +; 4161 : _CSTD memmove(_Dest_ch, _First_ch, _Count); - 00103 b8 08 00 00 00 mov eax, 8 - 00108 48 6b c0 fe imul rax, rax, -2 - 0010c 48 8b 4d 48 mov rcx, QWORD PTR _Ptr$[rbp] - 00110 48 ba fa fa fa - fa fa fa fa fa mov rdx, -361700864190383366 ; fafafafafafafafaH - 0011a 48 89 14 01 mov QWORD PTR [rcx+rax], rdx + 0008f 4c 8b 85 c8 00 + 00 00 mov r8, QWORD PTR _Count$[rbp] + 00096 48 8b 55 68 mov rdx, QWORD PTR _First_ch$[rbp] + 0009a 48 8b 8d a8 00 + 00 00 mov rcx, QWORD PTR _Dest_ch$[rbp] + 000a1 e8 00 00 00 00 call memmove -; 127 : #endif // _DEBUG -; 128 : return _Ptr; +; 4162 : if constexpr (is_pointer_v<_OutCtgIt>) { +; 4163 : return reinterpret_cast<_OutCtgIt>(_Dest_ch + _Count); - 0011e 48 8b 45 48 mov rax, QWORD PTR _Ptr$[rbp] -$LN11@Allocate_m: + 000a6 48 8b 85 c8 00 + 00 00 mov rax, QWORD PTR _Count$[rbp] + 000ad 48 8b 8d a8 00 + 00 00 mov rcx, QWORD PTR _Dest_ch$[rbp] + 000b4 48 03 c8 add rcx, rax + 000b7 48 8b c1 mov rax, rcx -; 129 : } +; 4164 : } else { +; 4165 : return _Dest + (_LastPtr - _FirstPtr); +; 4166 : } +; 4167 : } - 00122 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 00129 5f pop rdi - 0012a 5d pop rbp - 0012b c3 ret 0 -??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z ENDP ; std::_Allocate_manually_vector_aligned + 000ba 48 8d a5 a8 01 + 00 00 lea rsp, QWORD PTR [rbp+424] + 000c1 5f pop rdi + 000c2 5d pop rbp + 000c3 c3 ret 0 +??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z ENDP ; std::_Copy_memmove _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility -; COMDAT ??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\type_traits +; COMDAT ??$move@AEAK@std@@YA$$QEAKAEAK@Z _TEXT SEGMENT -_It$ = 224 -_UIt$ = 232 -??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z PROC ; std::_Seek_wrapped > >,unsigned long *>, COMDAT +_Arg$ = 224 +??$move@AEAK@std@@YA$$QEAKAEAK@Z PROC ; std::move, COMDAT -; 1417 : constexpr void _Seek_wrapped(_Iter& _It, _UIter&& _UIt) { +; 1455 : _NODISCARD constexpr remove_reference_t<_Ty>&& move(_Ty&& _Arg) noexcept { // forward _Arg as movable $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 + 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 - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1418 : if constexpr (_Wrapped_seekable_v<_Iter, _UIter>) { -; 1419 : _It._Seek_to(static_cast<_UIter&&>(_UIt)); - - 0003b 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR _UIt$[rbp] - 00042 48 8b 10 mov rdx, QWORD PTR [rax] - 00045 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR _It$[rbp] - 0004c e8 00 00 00 00 call ?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z ; std::_Vector_const_iterator > >::_Seek_to - -; 1420 : } else { -; 1421 : _It = static_cast<_UIter&&>(_UIt); -; 1422 : } -; 1423 : } - - 00051 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00058 5f pop rdi - 00059 5d pop rbp - 0005a c3 ret 0 -??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z ENDP ; std::_Seek_wrapped > >,unsigned long *> -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility -; COMDAT ??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z -_TEXT SEGMENT -$T1 = 196 -_First$ = 256 -_Last$ = 264 -_Val$ = 272 -??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z PROC ; std::_Find_unchecked, COMDAT + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D1154D4E_type_traits + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 5160 : _NODISCARD _CONSTEXPR20 _InIt _Find_unchecked(const _InIt _First, const _InIt _Last, const _Ty& _Val) { +; 1456 : return static_cast&&>(_Arg); -$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 08 01 - 00 00 sub rsp, 264 ; 00000108H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 5161 : // find first matching _Val; choose optimization -; 5162 : // activate optimization for pointers to (const) bytes and integral values -; 5163 : using _Memchr_opt = bool_constant< -; 5164 : is_integral_v<_Ty> && _Is_any_of_v<_InIt, char*, signed char*, unsigned char*, // -; 5165 : const char*, const signed char*, const unsigned char*>>; -; 5166 : -; 5167 : return _Find_unchecked1(_First, _Last, _Val, _Memchr_opt{}); - - 00040 48 8d 85 c4 00 - 00 00 lea rax, QWORD PTR $T1[rbp] - 00047 48 8b f8 mov rdi, rax - 0004a 33 c0 xor eax, eax - 0004c b9 01 00 00 00 mov ecx, 1 - 00051 f3 aa rep stosb - 00053 44 0f b6 8d c4 - 00 00 00 movzx r9d, BYTE PTR $T1[rbp] - 0005b 4c 8b 85 10 01 - 00 00 mov r8, QWORD PTR _Val$[rbp] - 00062 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR _Last$[rbp] - 00069 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR _First$[rbp] - 00070 e8 00 00 00 00 call ??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z ; std::_Find_unchecked1 + 0001f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Arg$[rbp] -; 5168 : } +; 1457 : } - 00075 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 0007c 5f pop rdi - 0007d 5d pop rbp - 0007e c3 ret 0 -??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z ENDP ; std::_Find_unchecked + 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 +??$move@AEAK@std@@YA$$QEAKAEAK@Z ENDP ; std::move _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility -; COMDAT ??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility +; COMDAT ??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z _TEXT SEGMENT _It$ = 224 -??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z PROC ; std::_Get_unwrapped > > const &>, COMDAT +??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z PROC ; std::_Get_unwrapped, COMDAT -; 1229 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { +; 1324 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5359,46 +4913,40 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1230 : // unwrap an iterator previously subjected to _Adl_verify_range or otherwise validated -; 1231 : if constexpr (is_pointer_v>) { // special-case pointers and arrays -; 1232 : return _It + 0; -; 1233 : } else if constexpr (_Unwrappable_v<_Iter>) { -; 1234 : return static_cast<_Iter&&>(_It)._Unwrapped(); - - 00036 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR _It$[rbp] - 0003d e8 00 00 00 00 call ?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ ; std::_Vector_iterator > >::_Unwrapped + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1325 : // unwrap an iterator previously subjected to _Adl_verify_range or otherwise validated +; 1326 : if constexpr (is_pointer_v>) { // special-case pointers and arrays +; 1327 : return _It + 0; + + 0001f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _It$[rbp] + 00026 48 8b 00 mov rax, QWORD PTR [rax] -; 1235 : } else { -; 1236 : return static_cast<_Iter&&>(_It); -; 1237 : } -; 1238 : } +; 1328 : } else if constexpr (_Unwrappable_v<_Iter>) { +; 1329 : return static_cast<_Iter&&>(_It)._Unwrapped(); +; 1330 : } else { +; 1331 : return static_cast<_Iter&&>(_It); +; 1332 : } +; 1333 : } - 00042 48 8d a5 c8 00 + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00049 5f pop rdi - 0004a 5d pop rbp - 0004b c3 ret 0 -??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ENDP ; std::_Get_unwrapped > > const &> + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 +??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z ENDP ; std::_Get_unwrapped _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility -; COMDAT ??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\type_traits +; COMDAT ??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z _TEXT SEGMENT -_It$ = 224 -??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z PROC ; std::_Get_unwrapped > > &>, COMDAT +_Arg$ = 224 +??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z PROC ; std::forward, COMDAT -; 1229 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { +; 1443 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5407,435 +4955,528 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1230 : // unwrap an iterator previously subjected to _Adl_verify_range or otherwise validated -; 1231 : if constexpr (is_pointer_v>) { // special-case pointers and arrays -; 1232 : return _It + 0; -; 1233 : } else if constexpr (_Unwrappable_v<_Iter>) { -; 1234 : return static_cast<_Iter&&>(_It)._Unwrapped(); - - 00036 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR _It$[rbp] - 0003d e8 00 00 00 00 call ?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ ; std::_Vector_iterator > >::_Unwrapped + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D1154D4E_type_traits + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1235 : } else { -; 1236 : return static_cast<_Iter&&>(_It); -; 1237 : } -; 1238 : } +; 1444 : return static_cast<_Ty&&>(_Arg); - 00042 48 8d a5 c8 00 + 0001f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Arg$[rbp] + +; 1445 : } + + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00049 5f pop rdi - 0004a 5d pop rbp - 0004b c3 ret 0 -??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ENDP ; std::_Get_unwrapped > > &> + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 +??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z ENDP ; std::forward _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility -; COMDAT ??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility +; COMDAT ??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z _TEXT SEGMENT _First$ = 224 _Last$ = 232 -??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z PROC ; std::_Adl_verify_range > >,std::_Vector_iterator > > >, COMDAT +_Val$ = 240 +__formal$ = 248 +??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z PROC ; std::_Find_unchecked1, COMDAT -; 1192 : constexpr void _Adl_verify_range(const _Iter& _First, const _Sentinel& _Last) { +; 5298 : _NODISCARD constexpr _InIt _Find_unchecked1(_InIt _First, const _InIt _Last, const _Ty& _Val, false_type) { -$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 +$LN7: + 00000 44 88 4c 24 20 mov BYTE PTR [rsp+32], r9b + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 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 e8 00 00 00 sub rsp, 232 ; 000000e8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1193 : // check that [_First, _Last) forms an iterator range -; 1194 : if constexpr (_Range_verifiable_v<_Iter, _Sentinel>) { -; 1195 : _Verify_range(_First, _Last); - - 0003b 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR _Last$[rbp] - 00042 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR _First$[rbp] - 00049 e8 00 00 00 00 call ?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z ; std::_Verify_range + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1196 : } -; 1197 : } +; 5299 : // find first matching _Val +; 5300 : for (; _First != _Last; ++_First) { - 0004e 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00055 5f pop rdi - 00056 5d pop rbp - 00057 c3 ret 0 -??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z ENDP ; std::_Adl_verify_range > >,std::_Vector_iterator > > > -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\type_traits -; COMDAT ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z -_TEXT SEGMENT -_Arg$ = 224 -??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z PROC ; std::forward, COMDAT + 0002e eb 12 jmp SHORT $LN4@Find_unche +$LN2@Find_unche: + 00030 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _First$[rbp] + 00037 48 83 c0 04 add rax, 4 + 0003b 48 89 85 e0 00 + 00 00 mov QWORD PTR _First$[rbp], rax +$LN4@Find_unche: + 00042 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Last$[rbp] + 00049 48 39 85 e0 00 + 00 00 cmp QWORD PTR _First$[rbp], rax + 00050 74 18 je SHORT $LN3@Find_unche -; 1454 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue +; 5301 : if (*_First == _Val) { -$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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__85A9AA98_type_traits - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1455 : return static_cast<_Ty&&>(_Arg); + 00052 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _First$[rbp] + 00059 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR _Val$[rbp] + 00060 8b 09 mov ecx, DWORD PTR [rcx] + 00062 39 08 cmp DWORD PTR [rax], ecx + 00064 75 02 jne SHORT $LN5@Find_unche - 00036 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Arg$[rbp] +; 5302 : break; -; 1456 : } + 00066 eb 02 jmp SHORT $LN3@Find_unche +$LN5@Find_unche: - 0003d 48 8d a5 c8 00 +; 5303 : } +; 5304 : } + + 00068 eb c6 jmp SHORT $LN2@Find_unche +$LN3@Find_unche: + +; 5305 : +; 5306 : return _First; + + 0006a 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _First$[rbp] + +; 5307 : } + + 00071 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 -??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z ENDP ; std::forward + 00078 5f pop rdi + 00079 5d pop rbp + 0007a c3 ret 0 +??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z ENDP ; std::_Find_unchecked1 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef -; COMDAT ??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ??$_Get_size_of_n@$03@std@@YA_K_K@Z _TEXT SEGMENT -_Val$ = 224 -??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z PROC ; std::addressof, COMDAT +_Overflow_is_possible$ = 4 +_Max_possible$1 = 40 +_Count$ = 288 +??$_Get_size_of_n@$03@std@@YA_K_K@Z PROC ; std::_Get_size_of_n<4>, COMDAT -; 274 : _NODISCARD constexpr _Ty* addressof(_Ty& _Val) noexcept { +; 59 : _NODISCARD constexpr size_t _Get_size_of_n(const size_t _Count) { -$LN3: +$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 + 00007 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 275 : return __builtin_addressof(_Val); +; 60 : constexpr bool _Overflow_is_possible = _Ty_size > 1; - 00036 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Val$[rbp] + 0001f c6 45 04 01 mov BYTE PTR _Overflow_is_possible$[rbp], 1 -; 276 : } +; 61 : +; 62 : if constexpr (_Overflow_is_possible) { +; 63 : constexpr size_t _Max_possible = static_cast(-1) / _Ty_size; - 0003d 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 -??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z ENDP ; std::addressof -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 + 00023 48 b8 ff ff ff + ff ff ff ff 3f mov rax, 4611686018427387903 ; 3fffffffffffffffH + 0002d 48 89 45 28 mov QWORD PTR _Max_possible$1[rbp], rax -; 213 : void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { +; 64 : if (_Count > _Max_possible) { -$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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 214 : // deallocate storage allocated by _Allocate when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ -; 215 : #if defined(_M_IX86) || defined(_M_X64) -; 216 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization - - 0003b 48 81 bd e8 00 - 00 00 00 10 00 - 00 cmp QWORD PTR _Bytes$[rbp], 4096 ; 00001000H - 00046 72 13 jb SHORT $LN2@Deallocate + 00031 48 b8 ff ff ff + ff ff ff ff 3f mov rax, 4611686018427387903 ; 3fffffffffffffffH + 0003b 48 39 85 20 01 + 00 00 cmp QWORD PTR _Count$[rbp], rax + 00042 76 05 jbe SHORT $LN2@Get_size_o -; 217 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); +; 65 : _Throw_bad_array_new_length(); // multiply overflow - 00048 48 8d 95 e8 00 - 00 00 lea rdx, QWORD PTR _Bytes$[rbp] - 0004f 48 8d 8d e0 00 - 00 00 lea rcx, QWORD PTR _Ptr$[rbp] - 00056 e8 00 00 00 00 call ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned -$LN2@Deallocate: + 00044 e8 00 00 00 00 call ?_Throw_bad_array_new_length@std@@YAXXZ ; std::_Throw_bad_array_new_length +$LN2@Get_size_o: -; 218 : } -; 219 : #endif // defined(_M_IX86) || defined(_M_X64) -; 220 : -; 221 : ::operator delete(_Ptr, _Bytes); +; 66 : } +; 67 : } +; 68 : +; 69 : return _Count * _Ty_size; - 0005b 48 8b 95 e8 00 - 00 00 mov rdx, QWORD PTR _Bytes$[rbp] - 00062 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00069 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete - 0006e 90 npad 1 + 00049 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR _Count$[rbp] + 00050 48 c1 e0 02 shl rax, 2 +$LN3@Get_size_o: -; 222 : } +; 70 : } - 0006f 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00076 5f pop rdi - 00077 5d pop rbp - 00078 c3 ret 0 -??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ENDP ; std::_Deallocate<16,0> + 00054 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 0005b 5f pop rdi + 0005c 5d pop rbp + 0005d c3 ret 0 +??$_Get_size_of_n@$03@std@@YA_K_K@Z ENDP ; std::_Get_size_of_n<4> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory -; COMDAT ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z _TEXT SEGMENT -_Bytes$ = 224 -??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z PROC ; std::_Allocate<16,std::_Default_allocate_traits,0>, COMDAT - -; 197 : __declspec(allocator) void* _Allocate(const size_t _Bytes) { - -$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 e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 198 : // allocate _Bytes when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ -; 199 : #if defined(_M_IX86) || defined(_M_X64) -; 200 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization - - 00036 48 81 bd e0 00 - 00 00 00 10 00 - 00 cmp QWORD PTR _Bytes$[rbp], 4096 ; 00001000H - 00041 72 0e jb SHORT $LN2@Allocate +_UFirst$ = 8 +_ULast$ = 40 +_Backout$ = 72 +$T4 = 312 +__$ArrayPad$ = 328 +_First$ = 368 +_Last$ = 376 +_Dest$ = 384 +_Al$ = 392 +??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z PROC ; std::_Uninitialized_move >, COMDAT -; 201 : return _Allocate_manually_vector_aligned<_Traits>(_Bytes); +; 1693 : const _InIt _First, const _InIt _Last, _Alloc_ptr_t<_Alloc> _Dest, _Alloc& _Al) { - 00043 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR _Bytes$[rbp] - 0004a e8 00 00 00 00 call ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z ; std::_Allocate_manually_vector_aligned - 0004f eb 1a jmp SHORT $LN1@Allocate -$LN2@Allocate: +$LN7: + 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 + 00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 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 78 01 + 00 00 sub rsp, 376 ; 00000178H + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00027 b9 26 00 00 00 mov ecx, 38 ; 00000026H + 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00031 f3 ab rep stosd + 00033 48 8b 8c 24 98 + 01 00 00 mov rcx, QWORD PTR [rsp+408] + 0003b 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00042 48 33 c5 xor rax, rbp + 00045 48 89 85 48 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0004c 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 202 : } -; 203 : #endif // defined(_M_IX86) || defined(_M_X64) -; 204 : -; 205 : if (_Bytes != 0) { +; 1694 : // move [_First, _Last) to raw _Dest, using _Al +; 1695 : // note: only called internally from elsewhere in the STL +; 1696 : using _Ptrval = typename _Alloc::value_type*; +; 1697 : auto _UFirst = _Get_unwrapped(_First); - 00051 48 83 bd e0 00 - 00 00 00 cmp QWORD PTR _Bytes$[rbp], 0 - 00059 74 0e je SHORT $LN3@Allocate + 00058 48 8d 8d 70 01 + 00 00 lea rcx, QWORD PTR _First$[rbp] + 0005f e8 00 00 00 00 call ??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z ; std::_Get_unwrapped + 00064 48 89 45 08 mov QWORD PTR _UFirst$[rbp], rax -; 206 : return _Traits::_Allocate(_Bytes); +; 1698 : const auto _ULast = _Get_unwrapped(_Last); - 0005b 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR _Bytes$[rbp] - 00062 e8 00 00 00 00 call ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ; std::_Default_allocate_traits::_Allocate - 00067 eb 02 jmp SHORT $LN1@Allocate -$LN3@Allocate: + 00068 48 8d 8d 78 01 + 00 00 lea rcx, QWORD PTR _Last$[rbp] + 0006f e8 00 00 00 00 call ??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z ; std::_Get_unwrapped + 00074 48 89 45 28 mov QWORD PTR _ULast$[rbp], rax + +; 1699 : if constexpr (conjunction_v::_Really_trivial>, +; 1700 : _Uses_default_construct<_Alloc, _Ptrval, decltype(_STD move(*_UFirst))>>) { +; 1701 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 1702 : if (!_STD is_constant_evaluated()) +; 1703 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 1704 : { +; 1705 : _Copy_memmove(_UFirst, _ULast, _Unfancy(_Dest)); + + 00078 48 8b 8d 80 01 + 00 00 mov rcx, QWORD PTR _Dest$[rbp] + 0007f e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy + 00084 4c 8b c0 mov r8, rax + 00087 48 8b 55 28 mov rdx, QWORD PTR _ULast$[rbp] + 0008b 48 8b 4d 08 mov rcx, QWORD PTR _UFirst$[rbp] + 0008f e8 00 00 00 00 call ??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z ; std::_Copy_memmove + +; 1706 : return _Dest + (_ULast - _UFirst); + + 00094 48 8b 45 08 mov rax, QWORD PTR _UFirst$[rbp] + 00098 48 8b 4d 28 mov rcx, QWORD PTR _ULast$[rbp] + 0009c 48 2b c8 sub rcx, rax + 0009f 48 8b c1 mov rax, rcx + 000a2 48 c1 f8 02 sar rax, 2 + 000a6 48 8b 8d 80 01 + 00 00 mov rcx, QWORD PTR _Dest$[rbp] + 000ad 48 8d 04 81 lea rax, QWORD PTR [rcx+rax*4] + 000b1 eb 74 jmp SHORT $LN1@Uninitiali + +; 1707 : } +; 1708 : } +; 1709 : +; 1710 : _Uninitialized_backout_al<_Alloc> _Backout{_Dest, _Al}; + + 000b3 ba 18 00 00 00 mov edx, 24 + 000b8 48 8d 4d 48 lea rcx, QWORD PTR _Backout$[rbp] + 000bc e8 00 00 00 00 call ?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX_K@Z + 000c1 4c 8b 85 88 01 + 00 00 mov r8, QWORD PTR _Al$[rbp] + 000c8 48 8b 95 80 01 + 00 00 mov rdx, QWORD PTR _Dest$[rbp] + 000cf 48 8d 4d 48 lea rcx, QWORD PTR _Backout$[rbp] + 000d3 e8 00 00 00 00 call ??0?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@PEAKAEAV?$allocator@K@1@@Z ; std::_Uninitialized_backout_al >::_Uninitialized_backout_al > + +; 1711 : for (; _UFirst != _ULast; ++_UFirst) { + + 000d8 eb 0c jmp SHORT $LN4@Uninitiali +$LN2@Uninitiali: + 000da 48 8b 45 08 mov rax, QWORD PTR _UFirst$[rbp] + 000de 48 83 c0 04 add rax, 4 + 000e2 48 89 45 08 mov QWORD PTR _UFirst$[rbp], rax +$LN4@Uninitiali: + 000e6 48 8b 45 28 mov rax, QWORD PTR _ULast$[rbp] + 000ea 48 39 45 08 cmp QWORD PTR _UFirst$[rbp], rax + 000ee 74 17 je SHORT $LN3@Uninitiali + +; 1712 : _Backout._Emplace_back(_STD move(*_UFirst)); + + 000f0 48 8b 4d 08 mov rcx, QWORD PTR _UFirst$[rbp] + 000f4 e8 00 00 00 00 call ??$move@AEAK@std@@YA$$QEAKAEAK@Z ; std::move + 000f9 48 8b d0 mov rdx, rax + 000fc 48 8d 4d 48 lea rcx, QWORD PTR _Backout$[rbp] + 00100 e8 00 00 00 00 call ??$_Emplace_back@K@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX$$QEAK@Z ; std::_Uninitialized_backout_al >::_Emplace_back + +; 1713 : } + + 00105 eb d3 jmp SHORT $LN2@Uninitiali +$LN3@Uninitiali: -; 207 : } -; 208 : -; 209 : return nullptr; +; 1714 : +; 1715 : return _Backout._Release(); - 00069 33 c0 xor eax, eax -$LN1@Allocate: + 00107 48 8d 4d 48 lea rcx, QWORD PTR _Backout$[rbp] + 0010b e8 00 00 00 00 call ?_Release@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAPEAKXZ ; std::_Uninitialized_backout_al >::_Release + 00110 48 89 85 38 01 + 00 00 mov QWORD PTR $T4[rbp], rax + 00117 48 8d 4d 48 lea rcx, QWORD PTR _Backout$[rbp] + 0011b e8 00 00 00 00 call ??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ ; std::_Uninitialized_backout_al >::~_Uninitialized_backout_al > + 00120 48 8b 85 38 01 + 00 00 mov rax, QWORD PTR $T4[rbp] +$LN1@Uninitiali: -; 210 : } +; 1716 : } - 0006b 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00072 5f pop rdi - 00073 5d pop rbp - 00074 c3 ret 0 -??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ENDP ; std::_Allocate<16,std::_Default_allocate_traits,0> + 00127 48 8b f8 mov rdi, rax + 0012a 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0012e 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z$rtcFrameData + 00135 e8 00 00 00 00 call _RTC_CheckStackVars + 0013a 48 8b c7 mov rax, rdi + 0013d 48 8b 8d 48 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00144 48 33 cd xor rcx, rbp + 00147 e8 00 00 00 00 call __security_check_cookie + 0014c 48 8d a5 58 01 + 00 00 lea rsp, QWORD PTR [rbp+344] + 00153 5f pop rdi + 00154 5d pop rbp + 00155 c3 ret 0 +??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z ENDP ; std::_Uninitialized_move > _TEXT ENDS +; COMDAT text$x +text$x SEGMENT +_UFirst$ = 8 +_ULast$ = 40 +_Backout$ = 72 +$T4 = 312 +__$ArrayPad$ = 328 +_First$ = 368 +_Last$ = 376 +_Dest$ = 384 +_Al$ = 392 +?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA PROC ; `std::_Uninitialized_move >'::`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 48 8d 4d 48 lea rcx, QWORD PTR _Backout$[rbp] + 00018 e8 00 00 00 00 call ??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ ; std::_Uninitialized_backout_al >::~_Uninitialized_backout_al > + 0001d 48 83 c4 28 add rsp, 40 ; 00000028H + 00021 5f pop rdi + 00022 5d pop rbp + 00023 c3 ret 0 +?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA ENDP ; `std::_Uninitialized_move >'::`1'::dtor$0 +text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory -; COMDAT ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z +; COMDAT text$x +text$x SEGMENT +_UFirst$ = 8 +_ULast$ = 40 +_Backout$ = 72 +$T4 = 312 +__$ArrayPad$ = 328 +_First$ = 368 +_Last$ = 376 +_Dest$ = 384 +_Al$ = 392 +?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA PROC ; `std::_Uninitialized_move >'::`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 48 8d 4d 48 lea rcx, QWORD PTR _Backout$[rbp] + 00018 e8 00 00 00 00 call ??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ ; std::_Uninitialized_backout_al >::~_Uninitialized_backout_al > + 0001d 48 83 c4 28 add rsp, 40 ; 00000028H + 00021 5f pop rdi + 00022 5d pop rbp + 00023 c3 ret 0 +?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA ENDP ; `std::_Uninitialized_move >'::`1'::dtor$0 +text$x 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 ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z _TEXT SEGMENT -_Overflow_is_possible$ = 4 -_Max_possible$1 = 40 -_Count$ = 288 -??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z PROC ; std::_Get_size_of_n<16>, COMDAT +_Block_size$ = 8 +_Ptr_container$ = 40 +_Ptr$ = 72 +_Bytes$ = 320 +??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z PROC ; std::_Allocate_manually_vector_aligned, COMDAT -; 55 : _NODISCARD constexpr size_t _Get_size_of_n(const size_t _Count) { +; 134 : __declspec(allocator) void* _Allocate_manually_vector_aligned(const size_t _Bytes) { -$LN4: +$LN13: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec 28 01 - 00 00 sub rsp, 296 ; 00000128H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 56 : constexpr bool _Overflow_is_possible = _Ty_size > 1; - - 00036 c6 45 04 01 mov BYTE PTR _Overflow_is_possible$[rbp], 1 + 00007 48 81 ec 58 01 + 00 00 sub rsp, 344 ; 00000158H + 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 57 : -; 58 : if _CONSTEXPR_IF (_Overflow_is_possible) { -; 59 : constexpr size_t _Max_possible = static_cast(-1) / _Ty_size; +; 135 : // allocate _Bytes manually aligned to at least _Big_allocation_alignment +; 136 : const size_t _Block_size = _Non_user_size + _Bytes; - 0003a 48 b8 ff ff ff - ff ff ff ff 0f mov rax, 1152921504606846975 ; 0fffffffffffffffH - 00044 48 89 45 28 mov QWORD PTR _Max_possible$1[rbp], rax + 0001f 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR _Bytes$[rbp] + 00026 48 83 c0 2f add rax, 47 ; 0000002fH + 0002a 48 89 45 08 mov QWORD PTR _Block_size$[rbp], rax -; 60 : if (_Count > _Max_possible) { +; 137 : if (_Block_size <= _Bytes) { - 00048 48 b8 ff ff ff - ff ff ff ff 0f mov rax, 1152921504606846975 ; 0fffffffffffffffH - 00052 48 39 85 20 01 - 00 00 cmp QWORD PTR _Count$[rbp], rax - 00059 76 05 jbe SHORT $LN2@Get_size_o + 0002e 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR _Bytes$[rbp] + 00035 48 39 45 08 cmp QWORD PTR _Block_size$[rbp], rax + 00039 77 05 ja SHORT $LN8@Allocate_m -; 61 : _Throw_bad_array_new_length(); // multiply overflow +; 138 : _Throw_bad_array_new_length(); // add overflow - 0005b e8 00 00 00 00 call ?_Throw_bad_array_new_length@std@@YAXXZ ; std::_Throw_bad_array_new_length -$LN2@Get_size_o: + 0003b e8 00 00 00 00 call ?_Throw_bad_array_new_length@std@@YAXXZ ; std::_Throw_bad_array_new_length +$LN8@Allocate_m: -; 62 : } -; 63 : } -; 64 : -; 65 : return _Count * _Ty_size; +; 139 : } +; 140 : +; 141 : const uintptr_t _Ptr_container = reinterpret_cast(_Traits::_Allocate(_Block_size)); - 00060 48 6b 85 20 01 - 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 -$LN3@Get_size_o: + 00040 48 8b 4d 08 mov rcx, QWORD PTR _Block_size$[rbp] + 00044 e8 00 00 00 00 call ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ; std::_Default_allocate_traits::_Allocate + 00049 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax +$LN4@Allocate_m: -; 66 : } +; 142 : _STL_VERIFY(_Ptr_container != 0, "invalid argument"); // validate even in release since we're doing p[-1] - 00068 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 0006f 5f pop rdi - 00070 5d pop rbp - 00071 c3 ret 0 -??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ENDP ; std::_Get_size_of_n<16> -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 >, COMDAT + 0004d 48 83 7d 28 00 cmp QWORD PTR _Ptr_container$[rbp], 0 + 00052 74 02 je SHORT $LN9@Allocate_m + 00054 eb 6b jmp SHORT $LN10@Allocate_m +$LN9@Allocate_m: +$LN7@Allocate_m: + 00056 48 8d 05 00 00 + 00 00 lea rax, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ + 0005d 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 00062 48 8d 05 00 00 + 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ + 00069 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 0006e 45 33 c9 xor r9d, r9d + 00071 41 b8 8e 00 00 + 00 mov r8d, 142 ; 0000008eH + 00077 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0007e b9 02 00 00 00 mov ecx, 2 + 00083 ff 15 00 00 00 + 00 call QWORD PTR __imp__CrtDbgReport + 00089 83 f8 01 cmp eax, 1 + 0008c 75 03 jne SHORT $LN12@Allocate_m + 0008e cc int 3 + 0008f 33 c0 xor eax, eax +$LN12@Allocate_m: + 00091 48 c7 44 24 20 + 00 00 00 00 mov QWORD PTR [rsp+32], 0 + 0009a 41 b9 8e 00 00 + 00 mov r9d, 142 ; 0000008eH + 000a0 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@ + 000a7 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_1EO@GFNCMDLA@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA_@ + 000ae 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@ + 000b5 ff 15 00 00 00 + 00 call QWORD PTR __imp__invalid_parameter + 000bb 33 c0 xor eax, eax + 000bd 85 c0 test eax, eax + 000bf 75 95 jne SHORT $LN7@Allocate_m +$LN10@Allocate_m: + 000c1 33 c0 xor eax, eax + 000c3 85 c0 test eax, eax + 000c5 75 86 jne SHORT $LN4@Allocate_m -; 955 : void _Destroy_range(_Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept { +; 143 : void* const _Ptr = reinterpret_cast((_Ptr_container + _Non_user_size) & ~(_Big_allocation_alignment - 1)); -$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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - -; 956 : // note that this is an optimization for debug mode codegen; in release mode the BE removes all of this -; 957 : using _Ty = typename _Alloc::value_type; -; 958 : if _CONSTEXPR_IF (!conjunction_v, _Uses_default_destroy<_Alloc, _Ty*>>) { -; 959 : for (; _First != _Last; ++_First) { -; 960 : allocator_traits<_Alloc>::destroy(_Al, _Unfancy(_First)); -; 961 : } -; 962 : } -; 963 : } - - 00041 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 -??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ENDP ; std::_Destroy_range > + 000c7 48 8b 45 28 mov rax, QWORD PTR _Ptr_container$[rbp] + 000cb 48 83 c0 2f add rax, 47 ; 0000002fH + 000cf 48 83 e0 e0 and rax, -32 ; ffffffffffffffe0H + 000d3 48 89 45 48 mov QWORD PTR _Ptr$[rbp], rax + +; 144 : static_cast(_Ptr)[-1] = _Ptr_container; + + 000d7 b8 08 00 00 00 mov eax, 8 + 000dc 48 6b c0 ff imul rax, rax, -1 + 000e0 48 8b 4d 48 mov rcx, QWORD PTR _Ptr$[rbp] + 000e4 48 8b 55 28 mov rdx, QWORD PTR _Ptr_container$[rbp] + 000e8 48 89 14 01 mov QWORD PTR [rcx+rax], rdx + +; 145 : +; 146 : #ifdef _DEBUG +; 147 : static_cast(_Ptr)[-2] = _Big_allocation_sentinel; + + 000ec b8 08 00 00 00 mov eax, 8 + 000f1 48 6b c0 fe imul rax, rax, -2 + 000f5 48 8b 4d 48 mov rcx, QWORD PTR _Ptr$[rbp] + 000f9 48 ba fa fa fa + fa fa fa fa fa mov rdx, -361700864190383366 ; fafafafafafafafaH + 00103 48 89 14 01 mov QWORD PTR [rcx+rax], rdx + +; 148 : #endif // _DEBUG +; 149 : return _Ptr; + + 00107 48 8b 45 48 mov rax, QWORD PTR _Ptr$[rbp] +$LN11@Allocate_m: + +; 150 : } + + 0010b 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 00112 5f pop rdi + 00113 5d pop rbp + 00114 c3 ret 0 +??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z ENDP ; std::_Allocate_manually_vector_aligned _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef -; COMDAT ??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility +; COMDAT ??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z _TEXT SEGMENT -_Ptr$ = 224 -??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z PROC ; std::_Unfancy, COMDAT +_It$ = 224 +??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z PROC ; std::_Voidify_iter, COMDAT -; 288 : _NODISCARD constexpr _Ty* _Unfancy(_Ty* _Ptr) noexcept { // do nothing for plain pointers +; 130 : _NODISCARD constexpr void* _Voidify_iter(_Iter _It) noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5844,105 +5485,135 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 289 : return _Ptr; +; 131 : if constexpr (is_pointer_v<_Iter>) { +; 132 : return const_cast(static_cast(_It)); - 00036 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 0001f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _It$[rbp] -; 290 : } +; 133 : } else { +; 134 : return const_cast(static_cast(_STD addressof(*_It))); +; 135 : } +; 136 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 -??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z ENDP ; std::_Unfancy + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 +??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z ENDP ; std::_Voidify_iter _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\utility -; COMDAT ??$min@_K@std@@YAAEB_KAEB_K0@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility +; COMDAT ??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z _TEXT SEGMENT -$T1 = 200 -tv65 = 216 -_Left$ = 256 -_Right$ = 264 -??$min@_K@std@@YAAEB_KAEB_K0@Z PROC ; std::min, COMDAT +_It$ = 224 +_UIt$ = 232 +??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z PROC ; std::_Seek_wrapped > >,unsigned long *>, COMDAT -; 67 : const _Ty& _Left, const _Ty& _Right) noexcept(noexcept(_Right < _Left)) /* strengthened */ { +; 1427 : constexpr void _Seek_wrapped(_Iter& _It, _UIter&& _UIt) { -$LN5: +$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 + 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 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__CF1C1A3F_utility - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1428 : if constexpr (_Wrapped_seekable_v<_Iter, _UIter>) { +; 1429 : _It._Seek_to(_STD forward<_UIter>(_UIt)); + + 00024 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _UIt$[rbp] + 0002b e8 00 00 00 00 call ??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z ; std::forward + 00030 48 8b 10 mov rdx, QWORD PTR [rax] + 00033 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _It$[rbp] + 0003a e8 00 00 00 00 call ?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z ; std::_Vector_const_iterator > >::_Seek_to -; 68 : // return smaller of _Left and _Right -; 69 : return _Right < _Left ? _Right : _Left; +; 1430 : } else { +; 1431 : _It = _STD forward<_UIter>(_UIt); +; 1432 : } +; 1433 : } - 0003b 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR _Right$[rbp] - 00042 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR _Left$[rbp] - 00049 48 8b 09 mov rcx, QWORD PTR [rcx] - 0004c 48 39 08 cmp QWORD PTR [rax], rcx - 0004f 73 10 jae SHORT $LN3@min - 00051 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR _Right$[rbp] - 00058 48 89 85 d8 00 - 00 00 mov QWORD PTR tv65[rbp], rax - 0005f eb 0e jmp SHORT $LN4@min -$LN3@min: - 00061 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR _Left$[rbp] - 00068 48 89 85 d8 00 - 00 00 mov QWORD PTR tv65[rbp], rax -$LN4@min: - 0006f 48 8b 85 d8 00 - 00 00 mov rax, QWORD PTR tv65[rbp] - 00076 48 89 85 c8 00 - 00 00 mov QWORD PTR $T1[rbp], rax - 0007d 48 8b 85 c8 00 - 00 00 mov rax, QWORD PTR $T1[rbp] + 0003f 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00046 5f pop rdi + 00047 5d pop rbp + 00048 c3 ret 0 +??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z ENDP ; std::_Seek_wrapped > >,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\xutility +; COMDAT ??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z +_TEXT SEGMENT +$T1 = 196 +_First$ = 256 +_Last$ = 264 +_Val$ = 272 +??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z PROC ; std::_Find_unchecked, COMDAT -; 70 : } +; 5333 : _NODISCARD _CONSTEXPR20 _InIt _Find_unchecked(const _InIt _First, const _InIt _Last, const _Ty& _Val) { - 00084 48 8d a5 e8 00 +$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 08 01 + 00 00 sub rsp, 264 ; 00000108H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 5334 : // find first matching _Val; choose optimization +; 5335 : // activate optimization for contiguous iterators to (const) bytes and integral values +; 5336 : return _Find_unchecked1(_First, _Last, _Val, bool_constant<_Memchr_in_find_is_safe<_InIt, _Ty>>{}); + + 00029 48 8d 85 c4 00 + 00 00 lea rax, QWORD PTR $T1[rbp] + 00030 48 8b f8 mov rdi, rax + 00033 33 c0 xor eax, eax + 00035 b9 01 00 00 00 mov ecx, 1 + 0003a f3 aa rep stosb + 0003c 44 0f b6 8d c4 + 00 00 00 movzx r9d, BYTE PTR $T1[rbp] + 00044 4c 8b 85 10 01 + 00 00 mov r8, QWORD PTR _Val$[rbp] + 0004b 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _Last$[rbp] + 00052 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 00059 e8 00 00 00 00 call ??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z ; std::_Find_unchecked1 + +; 5337 : } + + 0005e 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 -??$min@_K@std@@YAAEB_KAEB_K0@Z ENDP ; std::min + 00065 5f pop rdi + 00066 5d pop rbp + 00067 c3 ret 0 +??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z ENDP ; std::_Find_unchecked _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream -; COMDAT ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility +; COMDAT ??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z _TEXT SEGMENT -this$ = 224 -??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ PROC ; std::basic_ostream >::sentry::operator bool, COMDAT +_It$ = 224 +??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z PROC ; std::_Get_unwrapped > > const &>, COMDAT -; 125 : explicit __CLR_OR_THIS_CALL operator bool() const { +; 1324 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5951,249 +5622,804 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 126 : return _Ok; + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 0f b6 40 08 movzx eax, BYTE PTR [rax+8] +; 1325 : // unwrap an iterator previously subjected to _Adl_verify_range or otherwise validated +; 1326 : if constexpr (is_pointer_v>) { // special-case pointers and arrays +; 1327 : return _It + 0; +; 1328 : } else if constexpr (_Unwrappable_v<_Iter>) { +; 1329 : return static_cast<_Iter&&>(_It)._Unwrapped(); + + 0001f 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _It$[rbp] + 00026 e8 00 00 00 00 call ?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ ; std::_Vector_iterator > >::_Unwrapped -; 127 : } +; 1330 : } else { +; 1331 : return static_cast<_Iter&&>(_It); +; 1332 : } +; 1333 : } - 00041 48 8d a5 c8 00 + 0002b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 -??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ ENDP ; std::basic_ostream >::sentry::operator bool + 00032 5f pop rdi + 00033 5d pop rbp + 00034 c3 ret 0 +??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ENDP ; std::_Get_unwrapped > > const &> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream -; COMDAT ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility +; COMDAT ??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z _TEXT SEGMENT -_Zero_uncaught_exceptions$ = 4 -tv72 = 212 -this$ = 256 -??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ PROC ; std::basic_ostream >::sentry::~sentry, COMDAT +_It$ = 224 +??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z PROC ; std::_Get_unwrapped > > &>, COMDAT -; 110 : __CLR_OR_THIS_CALL ~sentry() noexcept { +; 1324 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { -$LN6: +$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 + 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 fc mov rdi, rsp - 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 111 : #if !_HAS_EXCEPTIONS -; 112 : const bool _Zero_uncaught_exceptions = true; -; 113 : #elif _HAS_DEPRECATED_UNCAUGHT_EXCEPTION -; 114 : const bool _Zero_uncaught_exceptions = !_STD uncaught_exception(); // TRANSITION, ArchivedOS-12000909 - - 00036 e8 00 00 00 00 call ?uncaught_exception@std@@YA_NXZ ; std::uncaught_exception - 0003b 0f b6 c0 movzx eax, al - 0003e 85 c0 test eax, eax - 00040 75 09 jne SHORT $LN4@sentry - 00042 c6 85 d4 00 00 - 00 01 mov BYTE PTR tv72[rbp], 1 - 00049 eb 07 jmp SHORT $LN5@sentry -$LN4@sentry: - 0004b c6 85 d4 00 00 - 00 00 mov BYTE PTR tv72[rbp], 0 -$LN5@sentry: - 00052 0f b6 85 d4 00 - 00 00 movzx eax, BYTE PTR tv72[rbp] - 00059 88 45 04 mov BYTE PTR _Zero_uncaught_exceptions$[rbp], al - -; 115 : #else // ^^^ _HAS_DEPRECATED_UNCAUGHT_EXCEPTION / !_HAS_DEPRECATED_UNCAUGHT_EXCEPTION vvv -; 116 : const bool _Zero_uncaught_exceptions = _STD uncaught_exceptions() == 0; -; 117 : #endif // !_HAS_DEPRECATED_UNCAUGHT_EXCEPTION -; 118 : -; 119 : if (_Zero_uncaught_exceptions) { + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0005c 0f b6 45 04 movzx eax, BYTE PTR _Zero_uncaught_exceptions$[rbp] - 00060 85 c0 test eax, eax - 00062 74 10 je SHORT $LN2@sentry +; 1325 : // unwrap an iterator previously subjected to _Adl_verify_range or otherwise validated +; 1326 : if constexpr (is_pointer_v>) { // special-case pointers and arrays +; 1327 : return _It + 0; +; 1328 : } else if constexpr (_Unwrappable_v<_Iter>) { +; 1329 : return static_cast<_Iter&&>(_It)._Unwrapped(); -; 120 : this->_Myostr._Osfx(); - - 00064 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 0006b 48 8b 08 mov rcx, QWORD PTR [rax] - 0006e ff 15 00 00 00 - 00 call QWORD PTR __imp_?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ -$LN2@sentry: + 0001f 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _It$[rbp] + 00026 e8 00 00 00 00 call ?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ ; std::_Vector_iterator > >::_Unwrapped -; 121 : } -; 122 : } +; 1330 : } else { +; 1331 : return static_cast<_Iter&&>(_It); +; 1332 : } +; 1333 : } - 00074 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0007b e8 00 00 00 00 call ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::_Sentry_base::~_Sentry_base - 00080 90 npad 1 - 00081 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00088 5f pop rdi - 00089 5d pop rbp - 0008a c3 ret 0 -??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ENDP ; std::basic_ostream >::sentry::~sentry + 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 +??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ENDP ; std::_Get_unwrapped > > &> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream -; COMDAT ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility +; COMDAT ??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z _TEXT SEGMENT -_Tied$ = 8 -this$ = 256 -_Ostr$ = 264 -??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z PROC ; std::basic_ostream >::sentry::sentry, COMDAT +_First$ = 224 +_Last$ = 232 +??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z PROC ; std::_Adl_verify_range > >,std::_Vector_iterator > > >, COMDAT -; 92 : explicit __CLR_OR_THIS_CALL sentry(basic_ostream& _Ostr) : _Sentry_base(_Ostr) { +; 1307 : constexpr void _Adl_verify_range(const _Iter& _First, const _Sentinel& _Last) { -$LN7: +$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 + 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 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR _Ostr$[rbp] - 00042 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00049 e8 00 00 00 00 call ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::_Sentry_base::_Sentry_base - 0004e 90 npad 1 - -; 93 : if (!_Ostr.good()) { + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0004f 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00056 48 8b 00 mov rax, QWORD PTR [rax] - 00059 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 0005d 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00064 48 03 c8 add rcx, rax - 00067 48 8b c1 mov rax, rcx - 0006a 48 8b c8 mov rcx, rax - 0006d ff 15 00 00 00 - 00 call QWORD PTR __imp_?good@ios_base@std@@QEBA_NXZ - 00073 0f b6 c0 movzx eax, al - 00076 85 c0 test eax, eax - 00078 75 10 jne SHORT $LN2@sentry +; 1308 : // check that [_First, _Last) forms an iterator range +; 1309 : if constexpr (_Range_verifiable_v<_Iter, _Sentinel>) { +; 1310 : _Verify_range(_First, _Last); -; 94 : _Ok = false; + 00024 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _Last$[rbp] + 0002b 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _First$[rbp] + 00032 e8 00 00 00 00 call ?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z ; std::_Verify_range - 0007a 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 00081 c6 40 08 00 mov BYTE PTR [rax+8], 0 +; 1311 : } +; 1312 : } -; 95 : return; + 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 +??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z ENDP ; std::_Adl_verify_range > >,std::_Vector_iterator > > > +_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\type_traits +; COMDAT ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z +_TEXT SEGMENT +_Arg$ = 224 +??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z PROC ; std::forward, COMDAT - 00085 e9 81 00 00 00 jmp $LN1@sentry -$LN2@sentry: +; 1443 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue -; 96 : } -; 97 : -; 98 : const auto _Tied = _Ostr.tie(); +$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:__D1154D4E_type_traits + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0008a 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00091 48 8b 00 mov rax, QWORD PTR [rax] - 00094 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00098 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 0009f 48 03 c8 add rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 8b c8 mov rcx, rax - 000a8 ff 15 00 00 00 - 00 call QWORD PTR __imp_?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ - 000ae 48 89 45 08 mov QWORD PTR _Tied$[rbp], rax +; 1444 : return static_cast<_Ty&&>(_Arg); -; 99 : if (!_Tied || _Tied == &_Ostr) { + 0001f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Arg$[rbp] - 000b2 48 83 7d 08 00 cmp QWORD PTR _Tied$[rbp], 0 - 000b7 74 0d je SHORT $LN4@sentry - 000b9 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000c0 48 39 45 08 cmp QWORD PTR _Tied$[rbp], rax - 000c4 75 0d jne SHORT $LN3@sentry -$LN4@sentry: +; 1445 : } -; 100 : _Ok = true; + 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 +??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z ENDP ; std::forward +_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\xutility +; COMDAT ??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z +_TEXT SEGMENT +_It$ = 224 +??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z PROC ; std::_Voidify_iter, COMDAT - 000c6 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 000cd c6 40 08 01 mov BYTE PTR [rax+8], 1 +; 130 : _NODISCARD constexpr void* _Voidify_iter(_Iter _It) noexcept { -; 101 : return; +$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:__7CE971A6_xutility + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 000d1 eb 38 jmp SHORT $LN1@sentry -$LN3@sentry: +; 131 : if constexpr (is_pointer_v<_Iter>) { +; 132 : return const_cast(static_cast(_It)); -; 102 : } -; 103 : -; 104 : -; 105 : _Tied->flush(); + 0001f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _It$[rbp] - 000d3 48 8b 4d 08 mov rcx, QWORD PTR _Tied$[rbp] - 000d7 ff 15 00 00 00 - 00 call QWORD PTR __imp_?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ +; 133 : } else { +; 134 : return const_cast(static_cast(_STD addressof(*_It))); +; 135 : } +; 136 : } -; 106 : _Ok = _Ostr.good(); // store test only after flushing tie + 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 +??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z ENDP ; std::_Voidify_iter +_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\xstddef +; COMDAT ??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z +_TEXT SEGMENT +_Val$ = 224 +??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z PROC ; std::addressof, COMDAT - 000dd 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000e4 48 8b 00 mov rax, QWORD PTR [rax] - 000e7 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 000eb 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 000f2 48 03 c8 add rcx, rax - 000f5 48 8b c1 mov rax, rcx - 000f8 48 8b c8 mov rcx, rax - 000fb ff 15 00 00 00 - 00 call QWORD PTR __imp_?good@ios_base@std@@QEBA_NXZ - 00101 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00108 88 41 08 mov BYTE PTR [rcx+8], al -$LN1@sentry: +; 274 : _NODISCARD constexpr _Ty* addressof(_Ty& _Val) noexcept { -; 107 : } +$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:__40B2458B_xstddef + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 275 : return __builtin_addressof(_Val); + + 0001f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Val$[rbp] + +; 276 : } + + 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 +??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z ENDP ; std::addressof +_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 ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z +_TEXT SEGMENT +_Bytes$ = 224 +??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z PROC ; std::_Allocate<16,std::_Default_allocate_traits,0>, COMDAT + +; 230 : __declspec(allocator) _CONSTEXPR20_DYNALLOC void* _Allocate(const size_t _Bytes) { + +$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 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 + +; 231 : // allocate _Bytes when !_HAS_ALIGNED_NEW || _Align <= __STDCPP_DEFAULT_NEW_ALIGNMENT__ +; 232 : #if defined(_M_IX86) || defined(_M_X64) +; 233 : #ifdef __cpp_lib_constexpr_dynamic_alloc // TRANSITION, GH-1532 +; 234 : if (!_STD is_constant_evaluated()) +; 235 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 236 : { +; 237 : if (_Bytes >= _Big_allocation_threshold) { // boost the alignment of big allocations to help autovectorization + + 0001f 48 81 bd e0 00 + 00 00 00 10 00 + 00 cmp QWORD PTR _Bytes$[rbp], 4096 ; 00001000H + 0002a 72 0e jb SHORT $LN2@Allocate + +; 238 : return _Allocate_manually_vector_aligned<_Traits>(_Bytes); + + 0002c 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _Bytes$[rbp] + 00033 e8 00 00 00 00 call ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z ; std::_Allocate_manually_vector_aligned + 00038 eb 1a jmp SHORT $LN1@Allocate +$LN2@Allocate: + +; 239 : } +; 240 : } +; 241 : #endif // defined(_M_IX86) || defined(_M_X64) +; 242 : +; 243 : if (_Bytes != 0) { + + 0003a 48 83 bd e0 00 + 00 00 00 cmp QWORD PTR _Bytes$[rbp], 0 + 00042 74 0e je SHORT $LN3@Allocate + +; 244 : return _Traits::_Allocate(_Bytes); + + 00044 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _Bytes$[rbp] + 0004b e8 00 00 00 00 call ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ; std::_Default_allocate_traits::_Allocate + 00050 eb 02 jmp SHORT $LN1@Allocate +$LN3@Allocate: + +; 245 : } +; 246 : +; 247 : return nullptr; + + 00052 33 c0 xor eax, eax +$LN1@Allocate: + +; 248 : } + + 00054 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0005b 5f pop rdi + 0005c 5d pop rbp + 0005d c3 ret 0 +??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ENDP ; std::_Allocate<16,std::_Default_allocate_traits,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 ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z +_TEXT SEGMENT +_Overflow_is_possible$ = 4 +_Max_possible$1 = 40 +_Count$ = 288 +??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z PROC ; std::_Get_size_of_n<16>, COMDAT + +; 59 : _NODISCARD constexpr size_t _Get_size_of_n(const size_t _Count) { + +$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 28 01 + 00 00 sub rsp, 296 ; 00000128H + 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 + +; 60 : constexpr bool _Overflow_is_possible = _Ty_size > 1; + + 0001f c6 45 04 01 mov BYTE PTR _Overflow_is_possible$[rbp], 1 + +; 61 : +; 62 : if constexpr (_Overflow_is_possible) { +; 63 : constexpr size_t _Max_possible = static_cast(-1) / _Ty_size; + + 00023 48 b8 ff ff ff + ff ff ff ff 0f mov rax, 1152921504606846975 ; 0fffffffffffffffH + 0002d 48 89 45 28 mov QWORD PTR _Max_possible$1[rbp], rax + +; 64 : if (_Count > _Max_possible) { + + 00031 48 b8 ff ff ff + ff ff ff ff 0f mov rax, 1152921504606846975 ; 0fffffffffffffffH + 0003b 48 39 85 20 01 + 00 00 cmp QWORD PTR _Count$[rbp], rax + 00042 76 05 jbe SHORT $LN2@Get_size_o + +; 65 : _Throw_bad_array_new_length(); // multiply overflow + + 00044 e8 00 00 00 00 call ?_Throw_bad_array_new_length@std@@YAXXZ ; std::_Throw_bad_array_new_length +$LN2@Get_size_o: + +; 66 : } +; 67 : } +; 68 : +; 69 : return _Count * _Ty_size; + + 00049 48 6b 85 20 01 + 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 +$LN3@Get_size_o: + +; 70 : } + + 00051 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 00058 5f pop rdi + 00059 5d pop rbp + 0005a c3 ret 0 +??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ENDP ; std::_Get_size_of_n<16> +_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 >, 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, _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 > +_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\xstddef +; COMDAT ??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z +_TEXT SEGMENT +_Ptr$ = 224 +??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z PROC ; std::_Unfancy, COMDAT + +; 288 : _NODISCARD constexpr _Ty* _Unfancy(_Ty* _Ptr) noexcept { // do nothing for plain pointers + +$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:__40B2458B_xstddef + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 289 : return _Ptr; + + 0001f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + +; 290 : } + + 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 +??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z ENDP ; std::_Unfancy +_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 ??$min@_K@std@@YAAEB_KAEB_K0@Z +_TEXT SEGMENT +$T1 = 200 +tv65 = 216 +_Left$ = 256 +_Right$ = 264 +??$min@_K@std@@YAAEB_KAEB_K0@Z PROC ; std::min, COMDAT + +; 66 : const _Ty& _Left, const _Ty& _Right) noexcept(noexcept(_Right < _Left)) /* strengthened */ { + +$LN5: + 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 + +; 67 : // return smaller of _Left and _Right +; 68 : return _Right < _Left ? _Right : _Left; + + 00024 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Right$[rbp] + 0002b 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR _Left$[rbp] + 00032 48 8b 09 mov rcx, QWORD PTR [rcx] + 00035 48 39 08 cmp QWORD PTR [rax], rcx + 00038 73 10 jae SHORT $LN3@min + 0003a 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Right$[rbp] + 00041 48 89 85 d8 00 + 00 00 mov QWORD PTR tv65[rbp], rax + 00048 eb 0e jmp SHORT $LN4@min +$LN3@min: + 0004a 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR _Left$[rbp] + 00051 48 89 85 d8 00 + 00 00 mov QWORD PTR tv65[rbp], rax +$LN4@min: + 00058 48 8b 85 d8 00 + 00 00 mov rax, QWORD PTR tv65[rbp] + 0005f 48 89 85 c8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 00066 48 8b 85 c8 00 + 00 00 mov rax, QWORD PTR $T1[rbp] + +; 69 : } + + 0006d 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00074 5f pop rdi + 00075 5d pop rbp + 00076 c3 ret 0 +??$min@_K@std@@YAAEB_KAEB_K0@Z ENDP ; std::min +_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\ostream +; COMDAT ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ +_TEXT SEGMENT +this$ = 224 +??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ PROC ; std::basic_ostream >::sentry::operator bool, COMDAT + +; 124 : explicit __CLR_OR_THIS_CALL operator bool() const { + +$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:__65C59933_ostream + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 125 : return _Ok; + + 0001f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00026 0f b6 40 08 movzx eax, BYTE PTR [rax+8] + +; 126 : } + + 0002a 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00031 5f pop rdi + 00032 5d pop rbp + 00033 c3 ret 0 +??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ ENDP ; std::basic_ostream >::sentry::operator bool +_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\ostream +; COMDAT ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ +_TEXT SEGMENT +_Zero_uncaught_exceptions$ = 4 +tv72 = 212 +this$ = 256 +??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ PROC ; std::basic_ostream >::sentry::~sentry, COMDAT + +; 109 : __CLR_OR_THIS_CALL ~sentry() 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:__65C59933_ostream + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 110 : #if !_HAS_EXCEPTIONS +; 111 : const bool _Zero_uncaught_exceptions = true; +; 112 : #elif _HAS_DEPRECATED_UNCAUGHT_EXCEPTION +; 113 : const bool _Zero_uncaught_exceptions = !_STD uncaught_exception(); // TRANSITION, ArchivedOS-12000909 + + 0001f e8 00 00 00 00 call ?uncaught_exception@std@@YA_NXZ ; std::uncaught_exception + 00024 0f b6 c0 movzx eax, al + 00027 85 c0 test eax, eax + 00029 75 09 jne SHORT $LN4@sentry + 0002b c6 85 d4 00 00 + 00 01 mov BYTE PTR tv72[rbp], 1 + 00032 eb 07 jmp SHORT $LN5@sentry +$LN4@sentry: + 00034 c6 85 d4 00 00 + 00 00 mov BYTE PTR tv72[rbp], 0 +$LN5@sentry: + 0003b 0f b6 85 d4 00 + 00 00 movzx eax, BYTE PTR tv72[rbp] + 00042 88 45 04 mov BYTE PTR _Zero_uncaught_exceptions$[rbp], al + +; 114 : #else // ^^^ _HAS_DEPRECATED_UNCAUGHT_EXCEPTION / !_HAS_DEPRECATED_UNCAUGHT_EXCEPTION vvv +; 115 : const bool _Zero_uncaught_exceptions = _STD uncaught_exceptions() == 0; +; 116 : #endif // !_HAS_DEPRECATED_UNCAUGHT_EXCEPTION +; 117 : +; 118 : if (_Zero_uncaught_exceptions) { + + 00045 0f b6 45 04 movzx eax, BYTE PTR _Zero_uncaught_exceptions$[rbp] + 00049 85 c0 test eax, eax + 0004b 74 10 je SHORT $LN2@sentry + +; 119 : this->_Myostr._Osfx(); + + 0004d 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00054 48 8b 08 mov rcx, QWORD PTR [rax] + 00057 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ +$LN2@sentry: + +; 120 : } +; 121 : } + + 0005d 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00064 e8 00 00 00 00 call ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::_Sentry_base::~_Sentry_base + 00069 90 npad 1 + 0006a 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00071 5f pop rdi + 00072 5d pop rbp + 00073 c3 ret 0 +??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ENDP ; std::basic_ostream >::sentry::~sentry +_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\ostream +; COMDAT ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z +_TEXT SEGMENT +_Tied$ = 8 +this$ = 256 +_Ostr$ = 264 +??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z PROC ; std::basic_ostream >::sentry::sentry, COMDAT + +; 92 : explicit __CLR_OR_THIS_CALL sentry(basic_ostream& _Ostr) : _Sentry_base(_Ostr) { + +$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 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:__65C59933_ostream + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _Ostr$[rbp] + 0002b 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00032 e8 00 00 00 00 call ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::_Sentry_base::_Sentry_base + 00037 90 npad 1 + +; 93 : if (!_Ostr.good()) { + + 00038 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 0003f 48 8b 00 mov rax, QWORD PTR [rax] + 00042 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00046 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 0004d 48 03 c8 add rcx, rax + 00050 48 8b c1 mov rax, rcx + 00053 48 8b c8 mov rcx, rax + 00056 ff 15 00 00 00 + 00 call QWORD PTR __imp_?good@ios_base@std@@QEBA_NXZ + 0005c 0f b6 c0 movzx eax, al + 0005f 85 c0 test eax, eax + 00061 75 10 jne SHORT $LN2@sentry + +; 94 : _Ok = false; + + 00063 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006a c6 40 08 00 mov BYTE PTR [rax+8], 0 + +; 95 : return; + + 0006e e9 81 00 00 00 jmp $LN1@sentry +$LN2@sentry: + +; 96 : } +; 97 : +; 98 : const auto _Tied = _Ostr.tie(); + + 00073 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 0007a 48 8b 00 mov rax, QWORD PTR [rax] + 0007d 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00081 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 00088 48 03 c8 add rcx, rax + 0008b 48 8b c1 mov rax, rcx + 0008e 48 8b c8 mov rcx, rax + 00091 ff 15 00 00 00 + 00 call QWORD PTR __imp_?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ + 00097 48 89 45 08 mov QWORD PTR _Tied$[rbp], rax + +; 99 : if (!_Tied || _Tied == &_Ostr) { + + 0009b 48 83 7d 08 00 cmp QWORD PTR _Tied$[rbp], 0 + 000a0 74 0d je SHORT $LN4@sentry + 000a2 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 000a9 48 39 45 08 cmp QWORD PTR _Tied$[rbp], rax + 000ad 75 0d jne SHORT $LN3@sentry +$LN4@sentry: + +; 100 : _Ok = true; + + 000af 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000b6 c6 40 08 01 mov BYTE PTR [rax+8], 1 + +; 101 : return; + + 000ba eb 38 jmp SHORT $LN1@sentry +$LN3@sentry: + +; 102 : } +; 103 : +; 104 : _Tied->flush(); + + 000bc 48 8b 4d 08 mov rcx, QWORD PTR _Tied$[rbp] + 000c0 ff 15 00 00 00 + 00 call QWORD PTR __imp_?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ - 0010b 48 8b 85 00 01 +; 105 : _Ok = _Ostr.good(); // store test only after flushing tie + + 000c6 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 000cd 48 8b 00 mov rax, QWORD PTR [rax] + 000d0 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000d4 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 000db 48 03 c8 add rcx, rax + 000de 48 8b c1 mov rax, rcx + 000e1 48 8b c8 mov rcx, rax + 000e4 ff 15 00 00 00 + 00 call QWORD PTR __imp_?good@ios_base@std@@QEBA_NXZ + 000ea 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000f1 88 41 08 mov BYTE PTR [rcx+8], al +$LN1@sentry: + +; 106 : } + + 000f4 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 8d a5 e8 00 + 000fb 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00119 5f pop rdi - 0011a 5d pop rbp - 0011b c3 ret 0 + 00102 5f pop rdi + 00103 5d pop rbp + 00104 c3 ret 0 ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ENDP ; std::basic_ostream >::sentry::sentry _TEXT ENDS ; COMDAT text$x @@ -6240,7 +6466,7 @@ _Ostr$ = 264 ?dtor$0@?0???0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z@4HA ENDP ; `std::basic_ostream >::sentry::sentry'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream ; COMDAT ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ _TEXT SEGMENT _Rdbuf$ = 8 @@ -6257,62 +6483,56 @@ $LN4: 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 8b fc mov rdi, rsp - 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 79 : const auto _Rdbuf = _Myostr.rdbuf(); - 00036 48 8b 85 00 01 + 0001f 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8b 00 mov rax, QWORD PTR [rax] - 00040 48 89 85 d8 00 + 00026 48 8b 00 mov rax, QWORD PTR [rax] + 00029 48 89 85 d8 00 00 00 mov QWORD PTR tv72[rbp], rax - 00047 48 8b 85 d8 00 + 00030 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv72[rbp] - 0004e 48 8b 00 mov rax, QWORD PTR [rax] - 00051 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00055 48 8b 8d d8 00 + 00037 48 8b 00 mov rax, QWORD PTR [rax] + 0003a 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 0003e 48 8b 8d d8 00 00 00 mov rcx, QWORD PTR tv72[rbp] - 0005c 48 03 c8 add rcx, rax - 0005f 48 8b c1 mov rax, rcx - 00062 48 8b c8 mov rcx, rax - 00065 ff 15 00 00 00 + 00045 48 03 c8 add rcx, rax + 00048 48 8b c1 mov rax, rcx + 0004b 48 8b c8 mov rcx, rax + 0004e ff 15 00 00 00 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 0006b 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax + 00054 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax ; 80 : if (_Rdbuf) { - 0006f 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 - 00074 74 0f je SHORT $LN2@Sentry_bas + 00058 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 + 0005d 74 0f je SHORT $LN2@Sentry_bas ; 81 : _Rdbuf->_Unlock(); - 00076 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] - 0007a 48 8b 00 mov rax, QWORD PTR [rax] - 0007d 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] - 00081 ff 50 10 call QWORD PTR [rax+16] - 00084 90 npad 1 + 0005f 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] + 00063 48 8b 00 mov rax, QWORD PTR [rax] + 00066 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] + 0006a ff 50 10 call QWORD PTR [rax+16] + 0006d 90 npad 1 $LN2@Sentry_bas: ; 82 : } ; 83 : } - 00085 48 8d a5 e8 00 + 0006e 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0008c 5f pop rdi - 0008d 5d pop rbp - 0008e c3 ret 0 + 00075 5f pop rdi + 00076 5d pop rbp + 00077 c3 ret 0 ??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ENDP ; std::basic_ostream >::_Sentry_base::~_Sentry_base _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream ; COMDAT ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z _TEXT SEGMENT _Rdbuf$ = 8 @@ -6331,68 +6551,62 @@ $LN4: 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 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 85 00 01 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 8b 8d 08 01 + 0002b 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00049 48 89 08 mov QWORD PTR [rax], rcx + 00032 48 89 08 mov QWORD PTR [rax], rcx ; 72 : const auto _Rdbuf = _Myostr.rdbuf(); - 0004c 48 8b 85 00 01 + 00035 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00053 48 8b 00 mov rax, QWORD PTR [rax] - 00056 48 89 85 d8 00 + 0003c 48 8b 00 mov rax, QWORD PTR [rax] + 0003f 48 89 85 d8 00 00 00 mov QWORD PTR tv73[rbp], rax - 0005d 48 8b 85 d8 00 + 00046 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv73[rbp] - 00064 48 8b 00 mov rax, QWORD PTR [rax] - 00067 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 0006b 48 8b 8d d8 00 + 0004d 48 8b 00 mov rax, QWORD PTR [rax] + 00050 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00054 48 8b 8d d8 00 00 00 mov rcx, QWORD PTR tv73[rbp] - 00072 48 03 c8 add rcx, rax - 00075 48 8b c1 mov rax, rcx - 00078 48 8b c8 mov rcx, rax - 0007b ff 15 00 00 00 + 0005b 48 03 c8 add rcx, rax + 0005e 48 8b c1 mov rax, rcx + 00061 48 8b c8 mov rcx, rax + 00064 ff 15 00 00 00 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 00081 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax + 0006a 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax ; 73 : if (_Rdbuf) { - 00085 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 - 0008a 74 0e je SHORT $LN2@Sentry_bas + 0006e 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 + 00073 74 0e je SHORT $LN2@Sentry_bas ; 74 : _Rdbuf->_Lock(); - 0008c 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] - 00090 48 8b 00 mov rax, QWORD PTR [rax] - 00093 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] - 00097 ff 50 08 call QWORD PTR [rax+8] + 00075 48 8b 45 08 mov rax, QWORD PTR _Rdbuf$[rbp] + 00079 48 8b 00 mov rax, QWORD PTR [rax] + 0007c 48 8b 4d 08 mov rcx, QWORD PTR _Rdbuf$[rbp] + 00080 ff 50 08 call QWORD PTR [rax+8] $LN2@Sentry_bas: ; 75 : } ; 76 : } - 0009a 48 8b 85 00 01 + 00083 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000a1 48 8d a5 e8 00 + 0008a 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 000a8 5f pop rdi - 000a9 5d pop rbp - 000aa c3 ret 0 + 00091 5f pop rdi + 00092 5d pop rbp + 00093 c3 ret 0 ??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ENDP ; std::basic_ostream >::_Sentry_base::_Sentry_base _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z _TEXT SEGMENT _New_proxy$ = 8 @@ -6401,7 +6615,7 @@ this$ = 288 _Al$ = 296 ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z PROC ; std::_Container_base12::_Alloc_proxy >, COMDAT -; 1101 : void _Alloc_proxy(_Alloc&& _Al) { +; 1073 : _CONSTEXPR20_CONTAINER void _Alloc_proxy(_Alloc&& _Al) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -6411,69 +6625,63 @@ $LN3: 0000c 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1102 : _Container_proxy* const _New_proxy = _Unfancy(_Al.allocate(1)); - - 0003b ba 01 00 00 00 mov edx, 1 - 00040 48 8b 8d 28 01 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1074 : _Container_proxy* const _New_proxy = _Unfancy(_Al.allocate(1)); + + 00024 ba 01 00 00 00 mov edx, 1 + 00029 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR _Al$[rbp] - 00047 e8 00 00 00 00 call ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z ; std::allocator::allocate - 0004c 48 8b c8 mov rcx, rax - 0004f e8 00 00 00 00 call ??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z ; std::_Unfancy - 00054 48 89 45 08 mov QWORD PTR _New_proxy$[rbp], rax + 00030 e8 00 00 00 00 call ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z ; std::allocator::allocate + 00035 48 8b c8 mov rcx, rax + 00038 e8 00 00 00 00 call ??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z ; std::_Unfancy + 0003d 48 89 45 08 mov QWORD PTR _New_proxy$[rbp], rax -; 1103 : _Construct_in_place(*_New_proxy, this); +; 1075 : _Construct_in_place(*_New_proxy, this); - 00058 48 8b 85 20 01 + 00041 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 89 85 e8 00 + 00048 48 89 85 e8 00 00 00 mov QWORD PTR $T1[rbp], rax - 00066 48 8d 95 e8 00 + 0004f 48 8d 95 e8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] - 00071 e8 00 00 00 00 call ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z ; std::_Construct_in_place + 00056 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] + 0005a e8 00 00 00 00 call ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z ; std::_Construct_in_place -; 1104 : _Myproxy = _New_proxy; +; 1076 : _Myproxy = _New_proxy; - 00076 48 8b 85 20 01 + 0005f 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0007d 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] - 00081 48 89 08 mov QWORD PTR [rax], rcx + 00066 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] + 0006a 48 89 08 mov QWORD PTR [rax], rcx -; 1105 : _New_proxy->_Mycont = this; +; 1077 : _New_proxy->_Mycont = this; - 00084 48 8b 45 08 mov rax, QWORD PTR _New_proxy$[rbp] - 00088 48 8b 8d 20 01 + 0006d 48 8b 45 08 mov rax, QWORD PTR _New_proxy$[rbp] + 00071 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0008f 48 89 08 mov QWORD PTR [rax], rcx + 00078 48 89 08 mov QWORD PTR [rax], rcx -; 1106 : } +; 1078 : } - 00092 48 8d a5 08 01 + 0007b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 00099 5f pop rdi - 0009a 5d pop rbp - 0009b c3 ret 0 + 00082 5f pop rdi + 00083 5d pop rbp + 00084 c3 ret 0 ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z ENDP ; std::_Container_base12::_Alloc_proxy > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z _TEXT SEGMENT this$ = 224 __formal$ = 232 ??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z PROC ; std::_Compressed_pair,std::_Vector_val >,1>::_Compressed_pair,std::_Vector_val >,1><>, COMDAT -; 1336 : : _Ty1(), _Myval2(_STD forward<_Other2>(_Val2)...) {} +; 1370 : : _Ty1(), _Myval2(_STD forward<_Other2>(_Val2)...) {} $LN3: 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl @@ -6483,40 +6691,34 @@ $LN3: 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 fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003a 48 8b 8d e0 00 + 00017 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00023 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00041 e8 00 00 00 00 call ??0?$allocator@K@std@@QEAA@XZ ; std::allocator::allocator - 00046 48 8b 85 e0 00 + 0002a e8 00 00 00 00 call ??0?$allocator@K@std@@QEAA@XZ ; std::allocator::allocator + 0002f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004d 48 8b c8 mov rcx, rax - 00050 e8 00 00 00 00 call ??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ ; std::_Vector_val >::_Vector_val > - 00055 48 8b 85 e0 00 + 00036 48 8b c8 mov rcx, rax + 00039 e8 00 00 00 00 call ??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ ; std::_Vector_val >::_Vector_val > + 0003e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005c 48 8d a5 c8 00 + 00045 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00063 5f pop rdi - 00064 5d pop rbp - 00065 c3 ret 0 + 0004c 5f pop rdi + 0004d 5d pop rbp + 0004e c3 ret 0 ??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z ENDP ; std::_Compressed_pair,std::_Vector_val >,1>::_Compressed_pair,std::_Vector_val >,1><> _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; 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::allocator, COMDAT -; 799 : constexpr allocator(const allocator<_Other>&) noexcept {} +; 829 : constexpr allocator(const allocator<_Other>&) noexcept {} $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -6526,33 +6728,27 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 85 e0 00 + 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] - 00042 48 8d a5 c8 00 + 0002b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00049 5f pop rdi - 0004a 5d pop rbp - 0004b c3 ret 0 + 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::allocator _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z _TEXT SEGMENT this$ = 224 _Count$ = 232 ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z PROC ; std::allocator::allocate, COMDAT -; 806 : _NODISCARD __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { +; 838 : _NODISCARD _CONSTEXPR20_DYNALLOC __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -6562,35 +6758,29 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 807 : return static_cast<_Ty*>(_Allocate<_New_alignof<_Ty>>(_Get_size_of_n(_Count))); - - 0003b 48 8b 8d e8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 839 : return static_cast<_Ty*>(_Allocate<_New_alignof<_Ty>>(_Get_size_of_n(_Count))); + + 00024 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Count$[rbp] - 00042 e8 00 00 00 00 call ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ; std::_Get_size_of_n<16> - 00047 48 8b c8 mov rcx, rax - 0004a e8 00 00 00 00 call ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> + 0002b e8 00 00 00 00 call ??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z ; std::_Get_size_of_n<16> + 00030 48 8b c8 mov rcx, rax + 00033 e8 00 00 00 00 call ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> -; 808 : } +; 840 : } - 0004f 48 8d a5 c8 00 + 00038 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00056 5f pop rdi - 00057 5d pop rbp - 00058 c3 ret 0 + 0003f 5f pop rdi + 00040 5d pop rbp + 00041 c3 ret 0 ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z ENDP ; std::allocator::allocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z _TEXT SEGMENT _Al$ = 8 @@ -6611,7 +6801,7 @@ _Whereptr$ = 600 <_Val_0>$ = 608 ??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z PROC ; std::vector >::_Emplace_reallocate, COMDAT -; 725 : pointer _Emplace_reallocate(const pointer _Whereptr, _Valty&&... _Val) { +; 765 : _CONSTEXPR20_CONTAINER pointer _Emplace_reallocate(const pointer _Whereptr, _Valty&&... _Val) { $LN13: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -6622,265 +6812,259 @@ $LN13: 00011 48 81 ec 58 02 00 00 sub rsp, 600 ; 00000258H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 96 00 00 00 mov ecx, 150 ; 00000096H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 02 00 00 mov rcx, QWORD PTR [rsp+632] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 726 : // reallocate and insert by perfectly forwarding _Val at _Whereptr -; 727 : _Alty& _Al = _Getal(); +; 766 : // reallocate and insert by perfectly forwarding _Val at _Whereptr +; 767 : _Alty& _Al = _Getal(); - 00040 48 8b 8d 50 02 + 00029 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR this$[rbp] - 00047 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 0004c 48 89 45 08 mov QWORD PTR _Al$[rbp], rax + 00030 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 00035 48 89 45 08 mov QWORD PTR _Al$[rbp], rax -; 728 : auto& _My_data = _Mypair._Myval2; +; 768 : auto& _My_data = _Mypair._Myval2; - 00050 48 8b 85 50 02 + 00039 48 8b 85 50 02 00 00 mov rax, QWORD PTR this$[rbp] - 00057 48 89 45 28 mov QWORD PTR _My_data$[rbp], rax + 00040 48 89 45 28 mov QWORD PTR _My_data$[rbp], rax -; 729 : pointer& _Myfirst = _My_data._Myfirst; +; 769 : pointer& _Myfirst = _My_data._Myfirst; - 0005b 48 8b 45 28 mov rax, QWORD PTR _My_data$[rbp] - 0005f 48 83 c0 08 add rax, 8 - 00063 48 89 45 48 mov QWORD PTR _Myfirst$[rbp], rax + 00044 48 8b 45 28 mov rax, QWORD PTR _My_data$[rbp] + 00048 48 83 c0 08 add rax, 8 + 0004c 48 89 45 48 mov QWORD PTR _Myfirst$[rbp], rax -; 730 : pointer& _Mylast = _My_data._Mylast; +; 770 : pointer& _Mylast = _My_data._Mylast; - 00067 48 8b 45 28 mov rax, QWORD PTR _My_data$[rbp] - 0006b 48 83 c0 10 add rax, 16 - 0006f 48 89 45 68 mov QWORD PTR _Mylast$[rbp], rax + 00050 48 8b 45 28 mov rax, QWORD PTR _My_data$[rbp] + 00054 48 83 c0 10 add rax, 16 + 00058 48 89 45 68 mov QWORD PTR _Mylast$[rbp], rax -; 731 : -; 732 : _STL_INTERNAL_CHECK(_Mylast == _My_data._Myend); // check that we have no unused capacity -; 733 : -; 734 : const auto _Whereoff = static_cast(_Whereptr - _Myfirst); +; 771 : +; 772 : _STL_INTERNAL_CHECK(_Mylast == _My_data._Myend); // check that we have no unused capacity +; 773 : +; 774 : const auto _Whereoff = static_cast(_Whereptr - _Myfirst); - 00073 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] - 00077 48 8b 00 mov rax, QWORD PTR [rax] - 0007a 48 8b 8d 58 02 + 0005c 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] + 00060 48 8b 00 mov rax, QWORD PTR [rax] + 00063 48 8b 8d 58 02 00 00 mov rcx, QWORD PTR _Whereptr$[rbp] - 00081 48 2b c8 sub rcx, rax - 00084 48 8b c1 mov rax, rcx - 00087 48 c1 f8 02 sar rax, 2 - 0008b 48 89 85 88 00 + 0006a 48 2b c8 sub rcx, rax + 0006d 48 8b c1 mov rax, rcx + 00070 48 c1 f8 02 sar rax, 2 + 00074 48 89 85 88 00 00 00 mov QWORD PTR _Whereoff$[rbp], rax -; 735 : const auto _Oldsize = static_cast(_Mylast - _Myfirst); +; 775 : const auto _Oldsize = static_cast(_Mylast - _Myfirst); - 00092 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] - 00096 48 8b 4d 48 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 a8 00 + 0007b 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 0007f 48 8b 4d 48 mov rcx, QWORD PTR _Myfirst$[rbp] + 00083 48 8b 09 mov rcx, QWORD PTR [rcx] + 00086 48 8b 00 mov rax, QWORD PTR [rax] + 00089 48 2b c1 sub rax, rcx + 0008c 48 c1 f8 02 sar rax, 2 + 00090 48 89 85 a8 00 00 00 mov QWORD PTR _Oldsize$[rbp], rax -; 736 : -; 737 : if (_Oldsize == max_size()) { +; 776 : +; 777 : if (_Oldsize == max_size()) { - 000ae 48 8b 8d 50 02 + 00097 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR this$[rbp] - 000b5 e8 00 00 00 00 call ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::max_size - 000ba 48 39 85 a8 00 + 0009e e8 00 00 00 00 call ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::max_size + 000a3 48 39 85 a8 00 00 00 cmp QWORD PTR _Oldsize$[rbp], rax - 000c1 75 05 jne SHORT $LN2@Emplace_re + 000aa 75 05 jne SHORT $LN2@Emplace_re -; 738 : _Xlength(); +; 778 : _Xlength(); - 000c3 e8 00 00 00 00 call ?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ ; std::vector >::_Xlength + 000ac e8 00 00 00 00 call ?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ ; std::vector >::_Xlength $LN2@Emplace_re: -; 739 : } -; 740 : -; 741 : const size_type _Newsize = _Oldsize + 1; +; 779 : } +; 780 : +; 781 : const size_type _Newsize = _Oldsize + 1; - 000c8 48 8b 85 a8 00 + 000b1 48 8b 85 a8 00 00 00 mov rax, QWORD PTR _Oldsize$[rbp] - 000cf 48 ff c0 inc rax - 000d2 48 89 85 c8 00 + 000b8 48 ff c0 inc rax + 000bb 48 89 85 c8 00 00 00 mov QWORD PTR _Newsize$[rbp], rax -; 742 : const size_type _Newcapacity = _Calculate_growth(_Newsize); +; 782 : const size_type _Newcapacity = _Calculate_growth(_Newsize); - 000d9 48 8b 95 c8 00 + 000c2 48 8b 95 c8 00 00 00 mov rdx, QWORD PTR _Newsize$[rbp] - 000e0 48 8b 8d 50 02 + 000c9 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR this$[rbp] - 000e7 e8 00 00 00 00 call ?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z ; std::vector >::_Calculate_growth - 000ec 48 89 85 e8 00 + 000d0 e8 00 00 00 00 call ?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z ; std::vector >::_Calculate_growth + 000d5 48 89 85 e8 00 00 00 mov QWORD PTR _Newcapacity$[rbp], rax -; 743 : -; 744 : const pointer _Newvec = _Al.allocate(_Newcapacity); +; 783 : +; 784 : const pointer _Newvec = _Al.allocate(_Newcapacity); - 000f3 48 8b 95 e8 00 + 000dc 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Newcapacity$[rbp] - 000fa 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] - 000fe e8 00 00 00 00 call ?allocate@?$allocator@K@std@@QEAAPEAK_K@Z ; std::allocator::allocate - 00103 48 89 85 08 01 + 000e3 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] + 000e7 e8 00 00 00 00 call ?allocate@?$allocator@K@std@@QEAAPEAK_K@Z ; std::allocator::allocate + 000ec 48 89 85 08 01 00 00 mov QWORD PTR _Newvec$[rbp], rax -; 745 : const pointer _Constructed_last = _Newvec + _Whereoff + 1; +; 785 : const pointer _Constructed_last = _Newvec + _Whereoff + 1; - 0010a 48 8b 85 08 01 + 000f3 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 00111 48 8b 8d 88 00 + 000fa 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] - 00118 48 8d 44 88 04 lea rax, QWORD PTR [rax+rcx*4+4] - 0011d 48 89 85 28 01 + 00101 48 8d 44 88 04 lea rax, QWORD PTR [rax+rcx*4+4] + 00106 48 89 85 28 01 00 00 mov QWORD PTR _Constructed_last$[rbp], rax -; 746 : pointer _Constructed_first = _Constructed_last; +; 786 : pointer _Constructed_first = _Constructed_last; - 00124 48 8b 85 28 01 + 0010d 48 8b 85 28 01 00 00 mov rax, QWORD PTR _Constructed_last$[rbp] - 0012b 48 89 85 48 01 + 00114 48 89 85 48 01 00 00 mov QWORD PTR _Constructed_first$[rbp], rax -; 747 : -; 748 : _TRY_BEGIN -; 749 : _Alty_traits::construct(_Al, _Unfancy(_Newvec + _Whereoff), _STD forward<_Valty>(_Val)...); +; 787 : +; 788 : _TRY_BEGIN +; 789 : _Alty_traits::construct(_Al, _Unfancy(_Newvec + _Whereoff), _STD forward<_Valty>(_Val)...); - 00132 48 8b 8d 60 02 + 0011b 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] - 00139 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward - 0013e 48 89 85 18 02 + 00122 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward + 00127 48 89 85 18 02 00 00 mov QWORD PTR tv134[rbp], rax - 00145 48 8b 85 08 01 + 0012e 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 0014c 48 8b 8d 88 00 + 00135 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] - 00153 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] - 00157 48 8b c8 mov rcx, rax - 0015a e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy - 0015f 48 89 85 20 02 + 0013c 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] + 00140 48 8b c8 mov rcx, rax + 00143 e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy + 00148 48 89 85 20 02 00 00 mov QWORD PTR tv132[rbp], rax - 00166 4c 8b 85 18 02 + 0014f 4c 8b 85 18 02 00 00 mov r8, QWORD PTR tv134[rbp] - 0016d 48 8b 95 20 02 + 00156 48 8b 95 20 02 00 00 mov rdx, QWORD PTR tv132[rbp] - 00174 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] - 00178 e8 00 00 00 00 call ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z ; std::_Default_allocator_traits >::construct + 0015d 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] + 00161 e8 00 00 00 00 call ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z ; std::_Default_allocator_traits >::construct -; 750 : _Constructed_first = _Newvec + _Whereoff; +; 790 : _Constructed_first = _Newvec + _Whereoff; - 0017d 48 8b 85 08 01 + 00166 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 00184 48 8b 8d 88 00 + 0016d 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] - 0018b 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] - 0018f 48 89 85 48 01 + 00174 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] + 00178 48 89 85 48 01 00 00 mov QWORD PTR _Constructed_first$[rbp], rax -; 751 : -; 752 : if (_Whereptr == _Mylast) { // at back, provide strong guarantee +; 791 : +; 792 : if (_Whereptr == _Mylast) { // at back, provide strong guarantee - 00196 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] - 0019a 48 8b 00 mov rax, QWORD PTR [rax] - 0019d 48 39 85 58 02 + 0017f 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 00183 48 8b 00 mov rax, QWORD PTR [rax] + 00186 48 39 85 58 02 00 00 cmp QWORD PTR _Whereptr$[rbp], rax - 001a4 75 23 jne SHORT $LN4@Emplace_re + 0018d 75 23 jne SHORT $LN4@Emplace_re -; 753 : _Umove_if_noexcept(_Myfirst, _Mylast, _Newvec); +; 793 : _Umove_if_noexcept(_Myfirst, _Mylast, _Newvec); - 001a6 4c 8b 8d 08 01 + 0018f 4c 8b 8d 08 01 00 00 mov r9, QWORD PTR _Newvec$[rbp] - 001ad 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] - 001b1 4c 8b 00 mov r8, QWORD PTR [rax] - 001b4 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] - 001b8 48 8b 10 mov rdx, QWORD PTR [rax] - 001bb 48 8b 8d 50 02 + 00196 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 0019a 4c 8b 00 mov r8, QWORD PTR [rax] + 0019d 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] + 001a1 48 8b 10 mov rdx, QWORD PTR [rax] + 001a4 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR this$[rbp] - 001c2 e8 00 00 00 00 call ?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z ; std::vector >::_Umove_if_noexcept + 001ab e8 00 00 00 00 call ?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z ; std::vector >::_Umove_if_noexcept -; 754 : } else { // provide basic guarantee +; 794 : } else { // provide basic guarantee - 001c7 eb 60 jmp SHORT $LN5@Emplace_re + 001b0 eb 60 jmp SHORT $LN5@Emplace_re $LN4@Emplace_re: -; 755 : _Umove(_Myfirst, _Whereptr, _Newvec); +; 795 : _Umove(_Myfirst, _Whereptr, _Newvec); - 001c9 4c 8b 8d 08 01 + 001b2 4c 8b 8d 08 01 00 00 mov r9, QWORD PTR _Newvec$[rbp] - 001d0 4c 8b 85 58 02 + 001b9 4c 8b 85 58 02 00 00 mov r8, QWORD PTR _Whereptr$[rbp] - 001d7 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] - 001db 48 8b 10 mov rdx, QWORD PTR [rax] - 001de 48 8b 8d 50 02 + 001c0 48 8b 45 48 mov rax, QWORD PTR _Myfirst$[rbp] + 001c4 48 8b 10 mov rdx, QWORD PTR [rax] + 001c7 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR this$[rbp] - 001e5 e8 00 00 00 00 call ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z ; std::vector >::_Umove + 001ce e8 00 00 00 00 call ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z ; std::vector >::_Umove -; 756 : _Constructed_first = _Newvec; +; 796 : _Constructed_first = _Newvec; - 001ea 48 8b 85 08 01 + 001d3 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 001f1 48 89 85 48 01 + 001da 48 89 85 48 01 00 00 mov QWORD PTR _Constructed_first$[rbp], rax -; 757 : _Umove(_Whereptr, _Mylast, _Newvec + _Whereoff + 1); +; 797 : _Umove(_Whereptr, _Mylast, _Newvec + _Whereoff + 1); - 001f8 48 8b 85 08 01 + 001e1 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 001ff 48 8b 8d 88 00 + 001e8 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] - 00206 48 8d 44 88 04 lea rax, QWORD PTR [rax+rcx*4+4] - 0020b 4c 8b c8 mov r9, rax - 0020e 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] - 00212 4c 8b 00 mov r8, QWORD PTR [rax] - 00215 48 8b 95 58 02 + 001ef 48 8d 44 88 04 lea rax, QWORD PTR [rax+rcx*4+4] + 001f4 4c 8b c8 mov r9, rax + 001f7 48 8b 45 68 mov rax, QWORD PTR _Mylast$[rbp] + 001fb 4c 8b 00 mov r8, QWORD PTR [rax] + 001fe 48 8b 95 58 02 00 00 mov rdx, QWORD PTR _Whereptr$[rbp] - 0021c 48 8b 8d 50 02 + 00205 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR this$[rbp] - 00223 e8 00 00 00 00 call ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z ; std::vector >::_Umove - 00228 90 npad 1 + 0020c e8 00 00 00 00 call ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z ; std::vector >::_Umove + 00211 90 npad 1 $LN5@Emplace_re: - 00229 eb 00 jmp SHORT $LN9@Emplace_re + 00212 eb 00 jmp SHORT $LN9@Emplace_re $LN10@Emplace_re: $LN9@Emplace_re: -; 758 : } -; 759 : _CATCH_ALL -; 760 : _Destroy(_Constructed_first, _Constructed_last); -; 761 : _Al.deallocate(_Newvec, _Newcapacity); -; 762 : _RERAISE; -; 763 : _CATCH_END -; 764 : -; 765 : _Change_array(_Newvec, _Newsize, _Newcapacity); +; 798 : } +; 799 : _CATCH_ALL +; 800 : _Destroy(_Constructed_first, _Constructed_last); +; 801 : _Al.deallocate(_Newvec, _Newcapacity); +; 802 : _RERAISE; +; 803 : _CATCH_END +; 804 : +; 805 : _Change_array(_Newvec, _Newsize, _Newcapacity); - 0022b 4c 8b 8d e8 00 + 00214 4c 8b 8d e8 00 00 00 mov r9, QWORD PTR _Newcapacity$[rbp] - 00232 4c 8b 85 c8 00 + 0021b 4c 8b 85 c8 00 00 00 mov r8, QWORD PTR _Newsize$[rbp] - 00239 48 8b 95 08 01 + 00222 48 8b 95 08 01 00 00 mov rdx, QWORD PTR _Newvec$[rbp] - 00240 48 8b 8d 50 02 + 00229 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR this$[rbp] - 00247 e8 00 00 00 00 call ?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z ; std::vector >::_Change_array + 00230 e8 00 00 00 00 call ?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z ; std::vector >::_Change_array -; 766 : return _Newvec + _Whereoff; +; 806 : return _Newvec + _Whereoff; - 0024c 48 8b 85 08 01 + 00235 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 00253 48 8b 8d 88 00 + 0023c 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] - 0025a 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] + 00243 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] -; 767 : } +; 807 : } - 0025e 48 8d a5 38 02 + 00247 48 8d a5 38 02 00 00 lea rsp, QWORD PTR [rbp+568] - 00265 5f pop rdi - 00266 5d pop rbp - 00267 c3 ret 0 + 0024e 5f pop rdi + 0024f 5d pop rbp + 00250 c3 ret 0 $LN11@Emplace_re: ??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z ENDP ; std::vector >::_Emplace_reallocate _TEXT ENDS @@ -6904,8 +7088,8 @@ _Whereptr$ = 600 <_Val_0>$ = 608 ?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA PROC ; `std::vector >::_Emplace_reallocate'::`1'::catch$0 -; 758 : } -; 759 : _CATCH_ALL +; 798 : } +; 799 : _CATCH_ALL 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -6915,9 +7099,9 @@ _Whereptr$ = 600 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] __catch$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z$0: -; 758 : } -; 759 : _CATCH_ALL -; 760 : _Destroy(_Constructed_first, _Constructed_last); +; 798 : } +; 799 : _CATCH_ALL +; 800 : _Destroy(_Constructed_first, _Constructed_last); 00014 4c 8b 85 28 01 00 00 mov r8, QWORD PTR _Constructed_last$[rbp] @@ -6927,10 +7111,10 @@ __catch$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAK 00 00 mov rcx, QWORD PTR this$[rbp] 00029 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy -; 758 : } -; 759 : _CATCH_ALL -; 760 : _Destroy(_Constructed_first, _Constructed_last); -; 761 : _Al.deallocate(_Newvec, _Newcapacity); +; 798 : } +; 799 : _CATCH_ALL +; 800 : _Destroy(_Constructed_first, _Constructed_last); +; 801 : _Al.deallocate(_Newvec, _Newcapacity); 0002e 4c 8b 85 e8 00 00 00 mov r8, QWORD PTR _Newcapacity$[rbp] @@ -6939,23 +7123,23 @@ __catch$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAK 0003c 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] 00040 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate -; 758 : } -; 759 : _CATCH_ALL -; 760 : _Destroy(_Constructed_first, _Constructed_last); -; 761 : _Al.deallocate(_Newvec, _Newcapacity); -; 762 : _RERAISE; +; 798 : } +; 799 : _CATCH_ALL +; 800 : _Destroy(_Constructed_first, _Constructed_last); +; 801 : _Al.deallocate(_Newvec, _Newcapacity); +; 802 : _RERAISE; 00045 33 d2 xor edx, edx 00047 33 c9 xor ecx, ecx 00049 e8 00 00 00 00 call _CxxThrowException 0004e 90 npad 1 -; 758 : } -; 759 : _CATCH_ALL -; 760 : _Destroy(_Constructed_first, _Constructed_last); -; 761 : _Al.deallocate(_Newvec, _Newcapacity); -; 762 : _RERAISE; -; 763 : _CATCH_END +; 798 : } +; 799 : _CATCH_ALL +; 800 : _Destroy(_Constructed_first, _Constructed_last); +; 801 : _Al.deallocate(_Newvec, _Newcapacity); +; 802 : _RERAISE; +; 803 : _CATCH_END 0004f 48 8d 05 00 00 00 00 lea rax, $LN10@catch$0 @@ -6987,7 +7171,7 @@ _Whereptr$ = 600 <_Val_0>$ = 608 ?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA PROC ; `std::vector >::_Emplace_reallocate'::`1'::catch$0 -; 759 : _CATCH_ALL +; 799 : _CATCH_ALL 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -6997,7 +7181,7 @@ _Whereptr$ = 600 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] __catch$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z$0: -; 760 : _Destroy(_Constructed_first, _Constructed_last); +; 800 : _Destroy(_Constructed_first, _Constructed_last); 00014 4c 8b 85 28 01 00 00 mov r8, QWORD PTR _Constructed_last$[rbp] @@ -7007,7 +7191,7 @@ __catch$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAK 00 00 mov rcx, QWORD PTR this$[rbp] 00029 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy -; 761 : _Al.deallocate(_Newvec, _Newcapacity); +; 801 : _Al.deallocate(_Newvec, _Newcapacity); 0002e 4c 8b 85 e8 00 00 00 mov r8, QWORD PTR _Newcapacity$[rbp] @@ -7016,14 +7200,14 @@ __catch$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAK 0003c 48 8b 4d 08 mov rcx, QWORD PTR _Al$[rbp] 00040 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate -; 762 : _RERAISE; +; 802 : _RERAISE; 00045 33 d2 xor edx, edx 00047 33 c9 xor ecx, ecx 00049 e8 00 00 00 00 call _CxxThrowException 0004e 90 npad 1 -; 763 : _CATCH_END +; 803 : _CATCH_END 0004f 48 8d 05 00 00 00 00 lea rax, $LN10@catch$0 @@ -7035,7 +7219,7 @@ __catch$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAK ?catch$0@?0???$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z@4HA ENDP ; `std::vector >::_Emplace_reallocate'::`1'::catch$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z _TEXT SEGMENT $T1 = 200 @@ -7044,7 +7228,7 @@ _Ptr$ = 264 <_Args_0>$ = 272 ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z PROC ; std::_Default_allocator_traits >::construct, COMDAT -; 693 : static void construct(_Alloc&, _Objty* const _Ptr, _Types&&... _Args) { +; 707 : static _CONSTEXPR20_DYNALLOC void construct(_Alloc&, _Objty* const _Ptr, _Types&&... _Args) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -7055,41 +7239,44 @@ $LN3: 00011 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 48 8b 95 08 01 - 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00047 b9 04 00 00 00 mov ecx, 4 - 0004c e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new - 00051 48 89 85 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00030 e8 00 00 00 00 call ??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z ; std::_Voidify_iter + 00035 48 8b d0 mov rdx, rax + 00038 b9 04 00 00 00 mov ecx, 4 + 0003d e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new + 00042 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 00058 48 8b 8d 10 01 + 00049 48 8b 8d 10 01 00 00 mov rcx, QWORD PTR <_Args_0>$[rbp] - 0005f e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward - 00064 48 8b 8d c8 00 + 00050 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward + 00055 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR $T1[rbp] - 0006b 8b 00 mov eax, DWORD PTR [rax] - 0006d 89 01 mov DWORD PTR [rcx], eax - -; 694 : ::new (const_cast(static_cast(_Ptr))) _Objty(_STD forward<_Types>(_Args)...); -; 695 : } - - 0006f 48 8d a5 e8 00 + 0005c 8b 00 mov eax, DWORD PTR [rax] + 0005e 89 01 mov DWORD PTR [rcx], eax + +; 708 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 709 : if (_STD is_constant_evaluated()) { +; 710 : _STD construct_at(_Ptr, _STD forward<_Types>(_Args)...); +; 711 : } else +; 712 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 713 : { +; 714 : ::new (_Voidify_iter(_Ptr)) _Objty(_STD forward<_Types>(_Args)...); +; 715 : } +; 716 : } + + 00060 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00076 5f pop rdi - 00077 5d pop rbp - 00078 c3 ret 0 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z ENDP ; std::_Default_allocator_traits >::construct _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstddef ; COMDAT ??$_Unfancy@K@std@@YAPEAKPEAK@Z _TEXT SEGMENT _Ptr$ = 224 @@ -7104,33 +7291,27 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 289 : return _Ptr; - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Ptr$[rbp] ; 290 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ??$_Unfancy@K@std@@YAPEAKPEAK@Z ENDP ; std::_Unfancy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector -; COMDAT ??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector +; COMDAT ??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z _TEXT SEGMENT _My_data$ = 8 _Mylast$ = 40 @@ -7140,164 +7321,11 @@ tv79 = 288 tv77 = 296 this$ = 336 <_Val_0>$ = 344 -??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z PROC ; std::vector >::_Emplace_back_with_unused_capacity, COMDAT - -; 682 : decltype(auto) _Emplace_back_with_unused_capacity(_Valty&&... _Val) { - -$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 58 01 - 00 00 sub rsp, 344 ; 00000158H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 683 : // insert by perfectly forwarding into element at end, provide strong guarantee -; 684 : auto& _My_data = _Mypair._Myval2; - - 0003b 48 8b 85 50 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax - -; 685 : pointer& _Mylast = _My_data._Mylast; - - 00046 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0004a 48 83 c0 10 add rax, 16 - 0004e 48 89 45 28 mov QWORD PTR _Mylast$[rbp], rax - -; 686 : _STL_INTERNAL_CHECK(_Mylast != _My_data._Myend); // check that we have unused capacity -; 687 : _Alty_traits::construct(_Getal(), _Unfancy(_Mylast), _STD forward<_Valty>(_Val)...); - - 00052 48 8b 8d 58 01 - 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] - 00059 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward - 0005e 48 89 85 18 01 - 00 00 mov QWORD PTR tv81[rbp], rax - 00065 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] - 00069 48 8b 08 mov rcx, QWORD PTR [rax] - 0006c e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy - 00071 48 89 85 20 01 - 00 00 mov QWORD PTR tv79[rbp], rax - 00078 48 8b 8d 50 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0007f e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 00084 48 89 85 28 01 - 00 00 mov QWORD PTR tv77[rbp], rax - 0008b 4c 8b 85 18 01 - 00 00 mov r8, QWORD PTR tv81[rbp] - 00092 48 8b 95 20 01 - 00 00 mov rdx, QWORD PTR tv79[rbp] - 00099 48 8b 8d 28 01 - 00 00 mov rcx, QWORD PTR tv77[rbp] - 000a0 e8 00 00 00 00 call ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z ; std::_Default_allocator_traits >::construct - -; 688 : _Orphan_range(_Mylast, _Mylast); - - 000a5 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] - 000a9 4c 8b 00 mov r8, QWORD PTR [rax] - 000ac 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] - 000b0 48 8b 10 mov rdx, QWORD PTR [rax] - 000b3 48 8b 8d 50 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 000ba e8 00 00 00 00 call ?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range - -; 689 : _Ty& _Result = *_Mylast; - - 000bf 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] - 000c3 48 8b 00 mov rax, QWORD PTR [rax] - 000c6 48 89 45 48 mov QWORD PTR _Result$[rbp], rax +??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z PROC ; std::vector >::_Emplace_back_with_unused_capacity, COMDAT -; 690 : ++_Mylast; - - 000ca 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] - 000ce 48 8b 00 mov rax, QWORD PTR [rax] - 000d1 48 83 c0 04 add rax, 4 - 000d5 48 8b 4d 28 mov rcx, QWORD PTR _Mylast$[rbp] - 000d9 48 89 01 mov QWORD PTR [rcx], rax - -; 691 : #if _HAS_CXX17 -; 692 : return _Result; - - 000dc 48 8b 45 48 mov rax, QWORD PTR _Result$[rbp] - -; 693 : #else // ^^^ _HAS_CXX17 ^^^ // vvv !_HAS_CXX17 vvv -; 694 : (void) _Result; -; 695 : #endif // _HAS_CXX17 -; 696 : } - - 000e0 48 8d a5 38 01 - 00 00 lea rsp, QWORD PTR [rbp+312] - 000e7 5f pop rdi - 000e8 5d pop rbp - 000e9 c3 ret 0 -??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z ENDP ; std::vector >::_Emplace_back_with_unused_capacity -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\type_traits -; COMDAT ??$forward@AEBK@std@@YAAEBKAEBK@Z -_TEXT SEGMENT -_Arg$ = 224 -??$forward@AEBK@std@@YAAEBKAEBK@Z PROC ; std::forward, COMDAT - -; 1454 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue +; 721 : _CONSTEXPR20_CONTAINER decltype(auto) _Emplace_back_with_unused_capacity(_Valty&&... _Val) { $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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__85A9AA98_type_traits - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1455 : return static_cast<_Ty&&>(_Arg); - - 00036 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Arg$[rbp] - -; 1456 : } - - 0003d 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 -??$forward@AEBK@std@@YAAEBKAEBK@Z ENDP ; std::forward -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector -; COMDAT ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z -_TEXT SEGMENT -_My_data$ = 8 -_Mylast$ = 40 -_Result$ = 72 -tv83 = 280 -tv81 = 288 -this$ = 336 -<_Val_0>$ = 344 -??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z PROC ; std::vector >::emplace_back, COMDAT - -; 700 : decltype(auto) emplace_back(_Valty&&... _Val) { - -$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 @@ -7305,349 +7333,260 @@ $LN4: 0000c 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 701 : // insert by perfectly forwarding into element at end, provide strong guarantee -; 702 : auto& _My_data = _Mypair._Myval2; +; 722 : // insert by perfectly forwarding into element at end, provide strong guarantee +; 723 : auto& _My_data = _Mypair._Myval2; - 0003b 48 8b 85 50 01 + 00024 48 8b 85 50 01 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax - -; 703 : pointer& _Mylast = _My_data._Mylast; - - 00046 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0004a 48 83 c0 10 add rax, 16 - 0004e 48 89 45 28 mov QWORD PTR _Mylast$[rbp], rax - -; 704 : if (_Mylast != _My_data._Myend) { - - 00052 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] - 00056 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 0005a 48 8b 49 18 mov rcx, QWORD PTR [rcx+24] - 0005e 48 39 08 cmp QWORD PTR [rax], rcx - 00061 74 1d je SHORT $LN2@emplace_ba + 0002b 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 705 : return _Emplace_back_with_unused_capacity(_STD forward<_Valty>(_Val)...); +; 724 : pointer& _Mylast = _My_data._Mylast; - 00063 48 8b 8d 58 01 - 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] - 0006a e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward - 0006f 48 8b d0 mov rdx, rax - 00072 48 8b 8d 50 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00079 e8 00 00 00 00 call ??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z ; std::vector >::_Emplace_back_with_unused_capacity - 0007e eb 43 jmp SHORT $LN1@emplace_ba -$LN2@emplace_ba: + 0002f 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00033 48 83 c0 10 add rax, 16 + 00037 48 89 45 28 mov QWORD PTR _Mylast$[rbp], rax -; 706 : } -; 707 : -; 708 : _Ty& _Result = *_Emplace_reallocate(_Mylast, _STD forward<_Valty>(_Val)...); +; 725 : _STL_INTERNAL_CHECK(_Mylast != _My_data._Myend); // check that we have unused capacity +; 726 : _Alty_traits::construct(_Getal(), _Unfancy(_Mylast), _STD forward<_Valty>(_Val)...); - 00080 48 8b 8d 58 01 + 0003b 48 8b 8d 58 01 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] - 00087 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward - 0008c 48 89 85 18 01 - 00 00 mov QWORD PTR tv83[rbp], rax - 00093 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] - 00097 48 8b 00 mov rax, QWORD PTR [rax] - 0009a 48 89 85 20 01 + 00042 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward + 00047 48 89 85 18 01 00 00 mov QWORD PTR tv81[rbp], rax - 000a1 4c 8b 85 18 01 - 00 00 mov r8, QWORD PTR tv83[rbp] - 000a8 48 8b 95 20 01 - 00 00 mov rdx, QWORD PTR tv81[rbp] - 000af 48 8b 8d 50 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 000b6 e8 00 00 00 00 call ??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z ; std::vector >::_Emplace_reallocate - 000bb 48 89 45 48 mov QWORD PTR _Result$[rbp], rax - -; 709 : #if _HAS_CXX17 -; 710 : return _Result; - - 000bf 48 8b 45 48 mov rax, QWORD PTR _Result$[rbp] -$LN1@emplace_ba: - -; 711 : #else // ^^^ _HAS_CXX17 ^^^ // vvv !_HAS_CXX17 vvv -; 712 : (void) _Result; -; 713 : #endif // _HAS_CXX17 -; 714 : } - - 000c3 48 8d a5 38 01 - 00 00 lea rsp, QWORD PTR [rbp+312] - 000ca 5f pop rdi - 000cb 5d pop rbp - 000cc c3 ret 0 -??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z ENDP ; std::vector >::emplace_back -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef -; COMDAT ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z -_TEXT SEGMENT -_Val$ = 224 -??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z PROC ; std::addressof > >, COMDAT - -; 274 : _NODISCARD constexpr _Ty* addressof(_Ty& _Val) 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 8b fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__38038D2D_xstddef - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 275 : return __builtin_addressof(_Val); - - 00036 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Val$[rbp] - -; 276 : } - - 0003d 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 -??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z ENDP ; std::addressof > > -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iomanip -; COMDAT ??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z -_TEXT SEGMENT -tv79 = 192 -_Ostr$ = 240 -_Manip$ = 248 -??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z PROC ; std::operator<<,char>, COMDAT - -; 49 : const _Fillobj<_Elem2>& _Manip) { // set fill character in output stream - -$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 f8 00 - 00 00 sub rsp, 248 ; 000000f8H - 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 50 : static_assert(is_same_v<_Elem, _Elem2>, "wrong character type for setfill"); -; 51 : -; 52 : _Ostr.fill(_Manip._Fill); - - 0003b 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00042 48 8b 00 mov rax, QWORD PTR [rax] - 00045 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00049 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00050 48 03 c8 add rcx, rax - 00053 48 8b c1 mov rax, rcx - 00056 48 89 85 c0 00 + 0004e 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 00052 48 8b 08 mov rcx, QWORD PTR [rax] + 00055 e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy + 0005a 48 89 85 20 01 00 00 mov QWORD PTR tv79[rbp], rax - 0005d 48 8b 85 f8 00 - 00 00 mov rax, QWORD PTR _Manip$[rbp] - 00064 0f b6 10 movzx edx, BYTE PTR [rax] - 00067 48 8b 8d c0 00 - 00 00 mov rcx, QWORD PTR tv79[rbp] - 0006e ff 15 00 00 00 - 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z - -; 53 : return _Ostr; - - 00074 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - -; 54 : } - - 0007b 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 00082 5f pop rdi - 00083 5d pop rbp - 00084 c3 ret 0 -??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z ENDP ; std::operator<<,char> -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iomanip -; COMDAT ??0?$_Fillobj@D@std@@QEAA@D@Z -_TEXT SEGMENT -this$ = 224 -_Ch$ = 232 -??0?$_Fillobj@D@std@@QEAA@D@Z PROC ; std::_Fillobj::_Fillobj, COMDAT - -; 27 : _Fillobj(_Elem _Ch) : _Fill(_Ch) {} - -$LN3: - 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl - 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 fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip - 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003a 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00041 0f b6 8d e8 00 - 00 00 movzx ecx, BYTE PTR _Ch$[rbp] - 00048 88 08 mov BYTE PTR [rax], cl - 0004a 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] - 00051 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00058 5f pop rdi - 00059 5d pop rbp - 0005a c3 ret 0 -??0?$_Fillobj@D@std@@QEAA@D@Z ENDP ; std::_Fillobj::_Fillobj + 00061 48 8b 8d 50 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00068 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0006d 48 89 85 28 01 + 00 00 mov QWORD PTR tv77[rbp], rax + 00074 4c 8b 85 18 01 + 00 00 mov r8, QWORD PTR tv81[rbp] + 0007b 48 8b 95 20 01 + 00 00 mov rdx, QWORD PTR tv79[rbp] + 00082 48 8b 8d 28 01 + 00 00 mov rcx, QWORD PTR tv77[rbp] + 00089 e8 00 00 00 00 call ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z ; std::_Default_allocator_traits >::construct + +; 727 : _Orphan_range(_Mylast, _Mylast); + + 0008e 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 00092 4c 8b 00 mov r8, QWORD PTR [rax] + 00095 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 00099 48 8b 10 mov rdx, QWORD PTR [rax] + 0009c 48 8b 8d 50 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000a3 e8 00 00 00 00 call ?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range + +; 728 : _Ty& _Result = *_Mylast; + + 000a8 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000ac 48 8b 00 mov rax, QWORD PTR [rax] + 000af 48 89 45 48 mov QWORD PTR _Result$[rbp], rax + +; 729 : ++_Mylast; + + 000b3 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 000b7 48 8b 00 mov rax, QWORD PTR [rax] + 000ba 48 83 c0 04 add rax, 4 + 000be 48 8b 4d 28 mov rcx, QWORD PTR _Mylast$[rbp] + 000c2 48 89 01 mov QWORD PTR [rcx], rax + +; 730 : #if _HAS_CXX17 +; 731 : return _Result; + + 000c5 48 8b 45 48 mov rax, QWORD PTR _Result$[rbp] + +; 732 : #else // ^^^ _HAS_CXX17 ^^^ // vvv !_HAS_CXX17 vvv +; 733 : (void) _Result; +; 734 : #endif // _HAS_CXX17 +; 735 : } + + 000c9 48 8d a5 38 01 + 00 00 lea rsp, QWORD PTR [rbp+312] + 000d0 5f pop rdi + 000d1 5d pop rbp + 000d2 c3 ret 0 +??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z ENDP ; std::vector >::_Emplace_back_with_unused_capacity _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iomanip -; COMDAT ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\type_traits +; COMDAT ??$forward@AEBK@std@@YAAEBKAEBK@Z _TEXT SEGMENT -__$ReturnUdt$ = 224 -_Ch$ = 232 -??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z PROC ; std::setfill, COMDAT +_Arg$ = 224 +??$forward@AEBK@std@@YAAEBKAEBK@Z PROC ; std::forward, COMDAT -; 34 : _NODISCARD _Fillobj<_Elem> setfill(_Elem _Ch) { +; 1443 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue $LN3: - 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl - 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 + 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 - 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip - 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D1154D4E_type_traits + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 35 : return _Fillobj<_Elem>(_Ch); +; 1444 : return static_cast<_Ty&&>(_Arg); - 0003a 0f b6 95 e8 00 - 00 00 movzx edx, BYTE PTR _Ch$[rbp] - 00041 48 8b 8d e0 00 - 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] - 00048 e8 00 00 00 00 call ??0?$_Fillobj@D@std@@QEAA@D@Z ; std::_Fillobj::_Fillobj - 0004d 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] + 0001f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Arg$[rbp] -; 36 : } +; 1445 : } - 00054 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005b 5f pop rdi - 0005c 5d pop rbp - 0005d c3 ret 0 -??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ENDP ; std::setfill + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 +??$forward@AEBK@std@@YAAEBKAEBK@Z ENDP ; std::forward _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\iomanip -; COMDAT ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector +; COMDAT ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z _TEXT SEGMENT -tv79 = 192 -_Ostr$ = 240 -_Manip$ = 248 -??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z PROC ; std::operator<<,__int64>, COMDAT +_My_data$ = 8 +_Mylast$ = 40 +_Result$ = 72 +tv83 = 280 +tv81 = 288 +this$ = 336 +<_Val_0>$ = 344 +??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z PROC ; std::vector >::emplace_back, COMDAT -; 423 : const _Smanip<_Arg>& _Manip) { // insert by calling function with output stream and argument +; 739 : _CONSTEXPR20_CONTAINER decltype(auto) emplace_back(_Valty&&... _Val) { -$LN3: +$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 f8 00 - 00 00 sub rsp, 248 ; 000000f8H + 0000c 48 81 ec 58 01 + 00 00 sub rsp, 344 ; 00000158H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8266A2FD_iomanip - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 424 : (*_Manip._Pfun)(_Ostr, _Manip._Manarg); +; 740 : // insert by perfectly forwarding into element at end, provide strong guarantee +; 741 : auto& _My_data = _Mypair._Myval2; - 0003b 48 8b 85 f8 00 - 00 00 mov rax, QWORD PTR _Manip$[rbp] - 00042 48 8b 00 mov rax, QWORD PTR [rax] - 00045 48 89 85 c0 00 - 00 00 mov QWORD PTR tv79[rbp], rax - 0004c 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00053 48 8b 00 mov rax, QWORD PTR [rax] - 00056 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 0005a 48 8b 8d f0 00 - 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00061 48 03 c8 add rcx, rax - 00064 48 8b c1 mov rax, rcx - 00067 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR _Manip$[rbp] - 0006e 48 8b 51 08 mov rdx, QWORD PTR [rcx+8] - 00072 48 8b c8 mov rcx, rax - 00075 ff 95 c0 00 00 - 00 call QWORD PTR tv79[rbp] + 00024 48 8b 85 50 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0002b 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 425 : return _Ostr; +; 742 : pointer& _Mylast = _My_data._Mylast; - 0007b 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 0002f 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00033 48 83 c0 10 add rax, 16 + 00037 48 89 45 28 mov QWORD PTR _Mylast$[rbp], rax -; 426 : } +; 743 : if (_Mylast != _My_data._Myend) { - 00082 48 8d a5 d8 00 - 00 00 lea rsp, QWORD PTR [rbp+216] - 00089 5f pop rdi - 0008a 5d pop rbp - 0008b c3 ret 0 -??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ENDP ; std::operator<<,__int64> + 0003b 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 0003f 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00043 48 8b 49 18 mov rcx, QWORD PTR [rcx+24] + 00047 48 39 08 cmp QWORD PTR [rax], rcx + 0004a 74 1d je SHORT $LN2@emplace_ba + +; 744 : return _Emplace_back_with_unused_capacity(_STD forward<_Valty>(_Val)...); + + 0004c 48 8b 8d 58 01 + 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] + 00053 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward + 00058 48 8b d0 mov rdx, rax + 0005b 48 8b 8d 50 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00062 e8 00 00 00 00 call ??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z ; std::vector >::_Emplace_back_with_unused_capacity + 00067 eb 43 jmp SHORT $LN1@emplace_ba +$LN2@emplace_ba: + +; 745 : } +; 746 : +; 747 : _Ty& _Result = *_Emplace_reallocate(_Mylast, _STD forward<_Valty>(_Val)...); + + 00069 48 8b 8d 58 01 + 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] + 00070 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward + 00075 48 89 85 18 01 + 00 00 mov QWORD PTR tv83[rbp], rax + 0007c 48 8b 45 28 mov rax, QWORD PTR _Mylast$[rbp] + 00080 48 8b 00 mov rax, QWORD PTR [rax] + 00083 48 89 85 20 01 + 00 00 mov QWORD PTR tv81[rbp], rax + 0008a 4c 8b 85 18 01 + 00 00 mov r8, QWORD PTR tv83[rbp] + 00091 48 8b 95 20 01 + 00 00 mov rdx, QWORD PTR tv81[rbp] + 00098 48 8b 8d 50 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0009f e8 00 00 00 00 call ??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z ; std::vector >::_Emplace_reallocate + 000a4 48 89 45 48 mov QWORD PTR _Result$[rbp], rax + +; 748 : #if _HAS_CXX17 +; 749 : return _Result; + + 000a8 48 8b 45 48 mov rax, QWORD PTR _Result$[rbp] +$LN1@emplace_ba: + +; 750 : #else // ^^^ _HAS_CXX17 ^^^ // vvv !_HAS_CXX17 vvv +; 751 : (void) _Result; +; 752 : #endif // _HAS_CXX17 +; 753 : } + + 000ac 48 8d a5 38 01 + 00 00 lea rsp, QWORD PTR [rbp+312] + 000b3 5f pop rdi + 000b4 5d pop rbp + 000b5 c3 ret 0 +??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z ENDP ; std::vector >::emplace_back +_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\xstddef +; COMDAT ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z +_TEXT SEGMENT +_Val$ = 224 +??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z PROC ; std::addressof > >, COMDAT + +; 274 : _NODISCARD constexpr _Ty* addressof(_Ty& _Val) 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:__40B2458B_xstddef + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 275 : return __builtin_addressof(_Val); + + 0001f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Val$[rbp] + +; 276 : } + + 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 +??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z ENDP ; std::addressof > > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ostream +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ostream ; COMDAT ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z _TEXT SEGMENT _State$ = 4 @@ -7683,7 +7622,7 @@ _Ostr$ = 592 _Ch$ = 600 ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z PROC ; std::operator<< >, COMDAT -; 780 : basic_ostream& _Ostr, char _Ch) { // insert a char into char stream +; 779 : basic_ostream& _Ostr, char _Ch) { // insert a char into char stream $LN23: 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl @@ -7693,414 +7632,414 @@ $LN23: 0000b 48 81 ec 58 02 00 00 sub rsp, 600 ; 00000258H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 96 00 00 00 mov ecx, 150 ; 00000096H - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 78 + 00017 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 0001c b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00026 f3 ab rep stosd + 00028 48 8b 8c 24 78 02 00 00 mov rcx, QWORD PTR [rsp+632] - 0002e 48 8b 05 00 00 + 00030 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00035 48 33 c5 xor rax, rbp - 00038 48 89 85 20 02 + 00037 48 33 c5 xor rax, rbp + 0003a 48 89 85 20 02 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream - 00046 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00041 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream + 00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 781 : using _Elem = char; -; 782 : using _Myos = basic_ostream<_Elem, _Traits>; -; 783 : -; 784 : ios_base::iostate _State = ios_base::goodbit; +; 780 : using _Elem = char; +; 781 : using _Myos = basic_ostream<_Elem, _Traits>; +; 782 : +; 783 : ios_base::iostate _State = ios_base::goodbit; - 0004b c7 45 04 00 00 + 0004d c7 45 04 00 00 00 00 mov DWORD PTR _State$[rbp], 0 -; 785 : const typename _Myos::sentry _Ok(_Ostr); +; 784 : const typename _Myos::sentry _Ok(_Ostr); - 00052 48 8b 95 50 02 + 00054 48 8b 95 50 02 00 00 mov rdx, QWORD PTR _Ostr$[rbp] - 00059 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] - 0005d e8 00 00 00 00 call ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::sentry::sentry - 00062 90 npad 1 - -; 786 : -; 787 : if (_Ok) { // state okay, insert - - 00063 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] - 00067 e8 00 00 00 00 call ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ ; std::basic_ostream >::sentry::operator bool - 0006c 0f b6 c0 movzx eax, al - 0006f 85 c0 test eax, eax - 00071 0f 84 1d 03 00 + 0005b 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] + 0005f e8 00 00 00 00 call ??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z ; std::basic_ostream >::sentry::sentry + 00064 90 npad 1 + +; 785 : +; 786 : if (_Ok) { // state okay, insert + + 00065 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] + 00069 e8 00 00 00 00 call ??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ ; std::basic_ostream >::sentry::operator bool + 0006e 0f b6 c0 movzx eax, al + 00071 85 c0 test eax, eax + 00073 0f 84 1d 03 00 00 je $LN8@operator -; 788 : streamsize _Pad = _Ostr.width() <= 1 ? 0 : _Ostr.width() - 1; +; 787 : streamsize _Pad = _Ostr.width() <= 1 ? 0 : _Ostr.width() - 1; - 00077 48 8b 85 50 02 + 00079 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0007e 48 8b 00 mov rax, QWORD PTR [rax] - 00081 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00085 48 8b 8d 50 02 + 00080 48 8b 00 mov rax, QWORD PTR [rax] + 00083 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00087 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 0008c 48 03 c8 add rcx, rax - 0008f 48 8b c1 mov rax, rcx - 00092 48 8b c8 mov rcx, rax - 00095 ff 15 00 00 00 + 0008e 48 03 c8 add rcx, rax + 00091 48 8b c1 mov rax, rcx + 00094 48 8b c8 mov rcx, rax + 00097 ff 15 00 00 00 00 call QWORD PTR __imp_?width@ios_base@std@@QEBA_JXZ - 0009b 48 83 f8 01 cmp rax, 1 - 0009f 7f 0d jg SHORT $LN15@operator - 000a1 48 c7 85 08 02 + 0009d 48 83 f8 01 cmp rax, 1 + 000a1 7f 0d jg SHORT $LN15@operator + 000a3 48 c7 85 08 02 00 00 00 00 00 00 mov QWORD PTR tv130[rbp], 0 - 000ac eb 2e jmp SHORT $LN16@operator + 000ae eb 2e jmp SHORT $LN16@operator $LN15@operator: - 000ae 48 8b 85 50 02 + 000b0 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000b5 48 8b 00 mov rax, QWORD PTR [rax] - 000b8 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 000bc 48 8b 8d 50 02 + 000b7 48 8b 00 mov rax, QWORD PTR [rax] + 000ba 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000be 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 000c3 48 03 c8 add rcx, rax - 000c6 48 8b c1 mov rax, rcx - 000c9 48 8b c8 mov rcx, rax - 000cc ff 15 00 00 00 + 000c5 48 03 c8 add rcx, rax + 000c8 48 8b c1 mov rax, rcx + 000cb 48 8b c8 mov rcx, rax + 000ce ff 15 00 00 00 00 call QWORD PTR __imp_?width@ios_base@std@@QEBA_JXZ - 000d2 48 ff c8 dec rax - 000d5 48 89 85 08 02 + 000d4 48 ff c8 dec rax + 000d7 48 89 85 08 02 00 00 mov QWORD PTR tv130[rbp], rax $LN16@operator: - 000dc 48 8b 85 08 02 + 000de 48 8b 85 08 02 00 00 mov rax, QWORD PTR tv130[rbp] - 000e3 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax + 000e5 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax -; 789 : -; 790 : _TRY_IO_BEGIN -; 791 : if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left) { +; 788 : +; 789 : _TRY_IO_BEGIN +; 790 : if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left) { - 000e7 48 8b 85 50 02 + 000e9 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 000ee 48 8b 00 mov rax, QWORD PTR [rax] - 000f1 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 000f5 48 8b 8d 50 02 + 000f0 48 8b 00 mov rax, QWORD PTR [rax] + 000f3 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000f7 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 000fc 48 03 c8 add rcx, rax - 000ff 48 8b c1 mov rax, rcx - 00102 48 8b c8 mov rcx, rax - 00105 ff 15 00 00 00 + 000fe 48 03 c8 add rcx, rax + 00101 48 8b c1 mov rax, rcx + 00104 48 8b c8 mov rcx, rax + 00107 ff 15 00 00 00 00 call QWORD PTR __imp_?flags@ios_base@std@@QEBAHXZ - 0010b 89 85 04 02 00 + 0010d 89 85 04 02 00 00 mov DWORD PTR tv65[rbp], eax - 00111 8b 85 04 02 00 + 00113 8b 85 04 02 00 00 mov eax, DWORD PTR tv65[rbp] - 00117 25 c0 01 00 00 and eax, 448 ; 000001c0H - 0011c 83 f8 40 cmp eax, 64 ; 00000040H - 0011f 0f 84 eb 00 00 + 00119 25 c0 01 00 00 and eax, 448 ; 000001c0H + 0011e 83 f8 40 cmp eax, 64 ; 00000040H + 00121 0f 84 eb 00 00 00 je $LN10@operator -; 792 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on left +; 791 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on left - 00125 eb 0b jmp SHORT $LN4@operator + 00127 eb 0b jmp SHORT $LN4@operator $LN2@operator: - 00127 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] - 0012b 48 ff c8 dec rax - 0012e 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax + 00129 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] + 0012d 48 ff c8 dec rax + 00130 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax $LN4@operator: - 00132 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 - 00136 0f 85 d4 00 00 + 00134 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 + 00138 0f 85 d4 00 00 00 jne $LN10@operator - 0013c 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 - 00141 0f 8e c9 00 00 + 0013e 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 + 00143 0f 8e c9 00 00 00 jle $LN10@operator -; 793 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { +; 792 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { - 00147 48 8b 85 50 02 + 00149 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0014e 48 8b 00 mov rax, QWORD PTR [rax] - 00151 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00155 48 8b 8d 50 02 + 00150 48 8b 00 mov rax, QWORD PTR [rax] + 00153 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00157 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 0015c 48 03 c8 add rcx, rax - 0015f 48 8b c1 mov rax, rcx - 00162 48 8b c8 mov rcx, rax - 00165 ff 15 00 00 00 + 0015e 48 03 c8 add rcx, rax + 00161 48 8b c1 mov rax, rcx + 00164 48 8b c8 mov rcx, rax + 00167 ff 15 00 00 00 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 0016b 48 89 85 08 02 + 0016d 48 89 85 08 02 00 00 mov QWORD PTR tv300[rbp], rax - 00172 48 8b 85 08 02 + 00174 48 8b 85 08 02 00 00 mov rax, QWORD PTR tv300[rbp] - 00179 48 89 85 10 02 + 0017b 48 89 85 10 02 00 00 mov QWORD PTR tv179[rbp], rax - 00180 48 8b 85 50 02 + 00182 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00187 48 8b 00 mov rax, QWORD PTR [rax] - 0018a 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 0018e 48 8b 8d 50 02 + 00189 48 8b 00 mov rax, QWORD PTR [rax] + 0018c 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00190 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 8b c8 mov rcx, rax - 0019e ff 15 00 00 00 + 00197 48 03 c8 add rcx, rax + 0019a 48 8b c1 mov rax, rcx + 0019d 48 8b c8 mov rcx, rax + 001a0 ff 15 00 00 00 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ - 001a4 88 85 18 02 00 + 001a6 88 85 18 02 00 00 mov BYTE PTR tv301[rbp], al - 001aa 0f b6 85 18 02 + 001ac 0f b6 85 18 02 00 00 movzx eax, BYTE PTR tv301[rbp] - 001b1 88 85 19 02 00 + 001b3 88 85 19 02 00 00 mov BYTE PTR tv177[rbp], al - 001b7 0f b6 95 19 02 + 001b9 0f b6 95 19 02 00 00 movzx edx, BYTE PTR tv177[rbp] - 001be 48 8b 8d 10 02 + 001c0 48 8b 8d 10 02 00 00 mov rcx, QWORD PTR tv179[rbp] - 001c5 ff 15 00 00 00 + 001c7 ff 15 00 00 00 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z - 001cb 89 85 1c 02 00 + 001cd 89 85 1c 02 00 00 mov DWORD PTR tv302[rbp], eax - 001d1 8b 85 1c 02 00 + 001d3 8b 85 1c 02 00 00 mov eax, DWORD PTR tv302[rbp] - 001d7 89 85 34 01 00 + 001d9 89 85 34 01 00 00 mov DWORD PTR $T5[rbp], eax - 001dd e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 001e2 89 85 54 01 00 + 001df e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 001e4 89 85 54 01 00 00 mov DWORD PTR $T6[rbp], eax - 001e8 48 8d 95 34 01 + 001ea 48 8d 95 34 01 00 00 lea rdx, QWORD PTR $T5[rbp] - 001ef 48 8d 8d 54 01 + 001f1 48 8d 8d 54 01 00 00 lea rcx, QWORD PTR $T6[rbp] - 001f6 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 001fb 0f b6 c0 movzx eax, al - 001fe 85 c0 test eax, eax - 00200 74 09 je SHORT $LN11@operator + 001f8 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 001fd 0f b6 c0 movzx eax, al + 00200 85 c0 test eax, eax + 00202 74 09 je SHORT $LN11@operator -; 794 : _State |= ios_base::badbit; +; 793 : _State |= ios_base::badbit; - 00202 8b 45 04 mov eax, DWORD PTR _State$[rbp] - 00205 83 c8 04 or eax, 4 - 00208 89 45 04 mov DWORD PTR _State$[rbp], eax + 00204 8b 45 04 mov eax, DWORD PTR _State$[rbp] + 00207 83 c8 04 or eax, 4 + 0020a 89 45 04 mov DWORD PTR _State$[rbp], eax $LN11@operator: -; 795 : } -; 796 : } +; 794 : } +; 795 : } - 0020b e9 17 ff ff ff jmp $LN2@operator + 0020d e9 17 ff ff ff jmp $LN2@operator $LN10@operator: -; 797 : } -; 798 : -; 799 : if (_State == ios_base::goodbit && _Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ch))) { +; 796 : } +; 797 : +; 798 : if (_State == ios_base::goodbit && _Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ch))) { - 00210 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 - 00214 0f 85 8d 00 00 + 00212 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 + 00216 0f 85 8d 00 00 00 jne $LN12@operator - 0021a 48 8b 85 50 02 + 0021c 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00221 48 8b 00 mov rax, QWORD PTR [rax] - 00224 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00228 48 8b 8d 50 02 + 00223 48 8b 00 mov rax, QWORD PTR [rax] + 00226 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 0022a 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 0022f 48 03 c8 add rcx, rax - 00232 48 8b c1 mov rax, rcx - 00235 48 8b c8 mov rcx, rax - 00238 ff 15 00 00 00 + 00231 48 03 c8 add rcx, rax + 00234 48 8b c1 mov rax, rcx + 00237 48 8b c8 mov rcx, rax + 0023a ff 15 00 00 00 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 0023e 48 89 85 08 02 + 00240 48 89 85 08 02 00 00 mov QWORD PTR tv303[rbp], rax - 00245 48 8b 85 08 02 + 00247 48 8b 85 08 02 00 00 mov rax, QWORD PTR tv303[rbp] - 0024c 48 89 85 10 02 + 0024e 48 89 85 10 02 00 00 mov QWORD PTR tv204[rbp], rax - 00253 0f b6 95 58 02 + 00255 0f b6 95 58 02 00 00 movzx edx, BYTE PTR _Ch$[rbp] - 0025a 48 8b 8d 10 02 + 0025c 48 8b 8d 10 02 00 00 mov rcx, QWORD PTR tv204[rbp] - 00261 ff 15 00 00 00 + 00263 ff 15 00 00 00 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z - 00267 89 85 18 02 00 + 00269 89 85 18 02 00 00 mov DWORD PTR tv304[rbp], eax - 0026d 8b 85 18 02 00 + 0026f 8b 85 18 02 00 00 mov eax, DWORD PTR tv304[rbp] - 00273 89 85 74 01 00 + 00275 89 85 74 01 00 00 mov DWORD PTR $T7[rbp], eax - 00279 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 0027e 89 85 94 01 00 + 0027b e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00280 89 85 94 01 00 00 mov DWORD PTR $T8[rbp], eax - 00284 48 8d 95 74 01 + 00286 48 8d 95 74 01 00 00 lea rdx, QWORD PTR $T7[rbp] - 0028b 48 8d 8d 94 01 + 0028d 48 8d 8d 94 01 00 00 lea rcx, QWORD PTR $T8[rbp] - 00292 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 00297 0f b6 c0 movzx eax, al - 0029a 85 c0 test eax, eax - 0029c 74 09 je SHORT $LN12@operator + 00294 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 00299 0f b6 c0 movzx eax, al + 0029c 85 c0 test eax, eax + 0029e 74 09 je SHORT $LN12@operator -; 800 : _State |= ios_base::badbit; +; 799 : _State |= ios_base::badbit; - 0029e 8b 45 04 mov eax, DWORD PTR _State$[rbp] - 002a1 83 c8 04 or eax, 4 - 002a4 89 45 04 mov DWORD PTR _State$[rbp], eax + 002a0 8b 45 04 mov eax, DWORD PTR _State$[rbp] + 002a3 83 c8 04 or eax, 4 + 002a6 89 45 04 mov DWORD PTR _State$[rbp], eax $LN12@operator: -; 801 : } -; 802 : -; 803 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on right +; 800 : } +; 801 : +; 802 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on right - 002a7 eb 0b jmp SHORT $LN7@operator + 002a9 eb 0b jmp SHORT $LN7@operator $LN5@operator: - 002a9 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] - 002ad 48 ff c8 dec rax - 002b0 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax + 002ab 48 8b 45 58 mov rax, QWORD PTR _Pad$4[rbp] + 002af 48 ff c8 dec rax + 002b2 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax $LN7@operator: - 002b4 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 - 002b8 0f 85 d4 00 00 + 002b6 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 + 002ba 0f 85 d4 00 00 00 jne $LN6@operator - 002be 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 - 002c3 0f 8e c9 00 00 + 002c0 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 + 002c5 0f 8e c9 00 00 00 jle $LN6@operator -; 804 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { +; 803 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { - 002c9 48 8b 85 50 02 + 002cb 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 002d0 48 8b 00 mov rax, QWORD PTR [rax] - 002d3 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 002d7 48 8b 8d 50 02 + 002d2 48 8b 00 mov rax, QWORD PTR [rax] + 002d5 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 002d9 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 002de 48 03 c8 add rcx, rax - 002e1 48 8b c1 mov rax, rcx - 002e4 48 8b c8 mov rcx, rax - 002e7 ff 15 00 00 00 + 002e0 48 03 c8 add rcx, rax + 002e3 48 8b c1 mov rax, rcx + 002e6 48 8b c8 mov rcx, rax + 002e9 ff 15 00 00 00 00 call QWORD PTR __imp_?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ - 002ed 48 89 85 08 02 + 002ef 48 89 85 08 02 00 00 mov QWORD PTR tv305[rbp], rax - 002f4 48 8b 85 08 02 + 002f6 48 8b 85 08 02 00 00 mov rax, QWORD PTR tv305[rbp] - 002fb 48 89 85 10 02 + 002fd 48 89 85 10 02 00 00 mov QWORD PTR tv245[rbp], rax - 00302 48 8b 85 50 02 + 00304 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00309 48 8b 00 mov rax, QWORD PTR [rax] - 0030c 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 00310 48 8b 8d 50 02 + 0030b 48 8b 00 mov rax, QWORD PTR [rax] + 0030e 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00312 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00317 48 03 c8 add rcx, rax - 0031a 48 8b c1 mov rax, rcx - 0031d 48 8b c8 mov rcx, rax - 00320 ff 15 00 00 00 + 00319 48 03 c8 add rcx, rax + 0031c 48 8b c1 mov rax, rcx + 0031f 48 8b c8 mov rcx, rax + 00322 ff 15 00 00 00 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ - 00326 88 85 18 02 00 + 00328 88 85 18 02 00 00 mov BYTE PTR tv306[rbp], al - 0032c 0f b6 85 18 02 + 0032e 0f b6 85 18 02 00 00 movzx eax, BYTE PTR tv306[rbp] - 00333 88 85 19 02 00 + 00335 88 85 19 02 00 00 mov BYTE PTR tv243[rbp], al - 00339 0f b6 95 19 02 + 0033b 0f b6 95 19 02 00 00 movzx edx, BYTE PTR tv243[rbp] - 00340 48 8b 8d 10 02 + 00342 48 8b 8d 10 02 00 00 mov rcx, QWORD PTR tv245[rbp] - 00347 ff 15 00 00 00 + 00349 ff 15 00 00 00 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z - 0034d 89 85 1c 02 00 + 0034f 89 85 1c 02 00 00 mov DWORD PTR tv307[rbp], eax - 00353 8b 85 1c 02 00 + 00355 8b 85 1c 02 00 00 mov eax, DWORD PTR tv307[rbp] - 00359 89 85 b4 01 00 + 0035b 89 85 b4 01 00 00 mov DWORD PTR $T9[rbp], eax - 0035f e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof - 00364 89 85 d4 01 00 + 00361 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00366 89 85 d4 01 00 00 mov DWORD PTR $T10[rbp], eax - 0036a 48 8d 95 b4 01 + 0036c 48 8d 95 b4 01 00 00 lea rdx, QWORD PTR $T9[rbp] - 00371 48 8d 8d d4 01 + 00373 48 8d 8d d4 01 00 00 lea rcx, QWORD PTR $T10[rbp] - 00378 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type - 0037d 0f b6 c0 movzx eax, al - 00380 85 c0 test eax, eax - 00382 74 09 je SHORT $LN13@operator + 0037a e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 0037f 0f b6 c0 movzx eax, al + 00382 85 c0 test eax, eax + 00384 74 09 je SHORT $LN13@operator -; 805 : _State |= ios_base::badbit; +; 804 : _State |= ios_base::badbit; - 00384 8b 45 04 mov eax, DWORD PTR _State$[rbp] - 00387 83 c8 04 or eax, 4 - 0038a 89 45 04 mov DWORD PTR _State$[rbp], eax + 00386 8b 45 04 mov eax, DWORD PTR _State$[rbp] + 00389 83 c8 04 or eax, 4 + 0038c 89 45 04 mov DWORD PTR _State$[rbp], eax $LN13@operator: -; 806 : } -; 807 : } +; 805 : } +; 806 : } - 0038d e9 17 ff ff ff jmp $LN5@operator + 0038f e9 17 ff ff ff jmp $LN5@operator $LN6@operator: - 00392 eb 00 jmp SHORT $LN8@operator + 00394 eb 00 jmp SHORT $LN8@operator $LN21@operator: $LN8@operator: -; 808 : _CATCH_IO_(ios_base, _Ostr) -; 809 : } -; 810 : -; 811 : _Ostr.width(0); +; 807 : _CATCH_IO_(ios_base, _Ostr) +; 808 : } +; 809 : +; 810 : _Ostr.width(0); - 00394 48 8b 85 50 02 + 00396 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 0039b 48 8b 00 mov rax, QWORD PTR [rax] - 0039e 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 003a2 48 8b 8d 50 02 + 0039d 48 8b 00 mov rax, QWORD PTR [rax] + 003a0 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 003a4 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 003a9 48 03 c8 add rcx, rax - 003ac 48 8b c1 mov rax, rcx - 003af 48 89 85 08 02 + 003ab 48 03 c8 add rcx, rax + 003ae 48 8b c1 mov rax, rcx + 003b1 48 89 85 08 02 00 00 mov QWORD PTR tv281[rbp], rax - 003b6 33 d2 xor edx, edx - 003b8 48 8b 8d 08 02 + 003b8 33 d2 xor edx, edx + 003ba 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR tv281[rbp] - 003bf ff 15 00 00 00 + 003c1 ff 15 00 00 00 00 call QWORD PTR __imp_?width@ios_base@std@@QEAA_J_J@Z -; 812 : _Ostr.setstate(_State); +; 811 : _Ostr.setstate(_State); - 003c5 48 8b 85 50 02 + 003c7 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 003cc 48 8b 00 mov rax, QWORD PTR [rax] - 003cf 48 63 40 04 movsxd rax, DWORD PTR [rax+4] - 003d3 48 8b 8d 50 02 + 003ce 48 8b 00 mov rax, QWORD PTR [rax] + 003d1 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 003d5 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 003da 48 03 c8 add rcx, rax - 003dd 48 8b c1 mov rax, rcx - 003e0 48 89 85 08 02 + 003dc 48 03 c8 add rcx, rax + 003df 48 8b c1 mov rax, rcx + 003e2 48 89 85 08 02 00 00 mov QWORD PTR tv295[rbp], rax - 003e7 45 33 c0 xor r8d, r8d - 003ea 8b 55 04 mov edx, DWORD PTR _State$[rbp] - 003ed 48 8b 8d 08 02 + 003e9 45 33 c0 xor r8d, r8d + 003ec 8b 55 04 mov edx, DWORD PTR _State$[rbp] + 003ef 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR tv295[rbp] - 003f4 ff 15 00 00 00 + 003f6 ff 15 00 00 00 00 call QWORD PTR __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z -; 813 : return _Ostr; +; 812 : return _Ostr; - 003fa 48 8b 85 50 02 + 003fc 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00401 48 89 85 f8 01 + 00403 48 89 85 f8 01 00 00 mov QWORD PTR $T11[rbp], rax - 00408 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] - 0040c e8 00 00 00 00 call ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::sentry::~sentry - 00411 48 8b 85 f8 01 + 0040a 48 8d 4d 28 lea rcx, QWORD PTR _Ok$[rbp] + 0040e e8 00 00 00 00 call ??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ostream >::sentry::~sentry + 00413 48 8b 85 f8 01 00 00 mov rax, QWORD PTR $T11[rbp] -; 814 : } +; 813 : } - 00418 48 8b f8 mov rdi, rax - 0041b 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0041f 48 8d 15 00 00 + 0041a 48 8b f8 mov rdi, rax + 0041d 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00421 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z$rtcFrameData - 00426 e8 00 00 00 00 call _RTC_CheckStackVars - 0042b 48 8b c7 mov rax, rdi - 0042e 48 8b 8d 20 02 + 00428 e8 00 00 00 00 call _RTC_CheckStackVars + 0042d 48 8b c7 mov rax, rdi + 00430 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00435 48 33 cd xor rcx, rbp - 00438 e8 00 00 00 00 call __security_check_cookie - 0043d 48 8d a5 38 02 + 00437 48 33 cd xor rcx, rbp + 0043a e8 00 00 00 00 call __security_check_cookie + 0043f 48 8d a5 38 02 00 00 lea rsp, QWORD PTR [rbp+568] - 00444 5f pop rdi - 00445 5d pop rbp - 00446 c3 ret 0 + 00446 5f pop rdi + 00447 5d pop rbp + 00448 c3 ret 0 ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z ENDP ; std::operator<< > _TEXT ENDS ; COMDAT text$x @@ -8186,7 +8125,7 @@ _Ostr$ = 592 _Ch$ = 600 ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA PROC ; `std::operator<< >'::`1'::catch$1 -; 808 : _CATCH_IO_(ios_base, _Ostr) +; 807 : _CATCH_IO_(ios_base, _Ostr) 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -8306,7 +8245,7 @@ _Ostr$ = 592 _Ch$ = 600 ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA PROC ; `std::operator<< >'::`1'::catch$1 -; 808 : _CATCH_IO_(ios_base, _Ostr) +; 807 : _CATCH_IO_(ios_base, _Ostr) 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -8342,13 +8281,207 @@ __catch$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D ?catch$1@?0???$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z@4HA ENDP ; `std::operator<< >'::`1'::catch$1 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\cmath +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\iomanip +; COMDAT ??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z +_TEXT SEGMENT +tv79 = 192 +_Ostr$ = 240 +_Manip$ = 248 +??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z PROC ; std::operator<<,char>, COMDAT + +; 49 : const _Fillobj<_Elem2>& _Manip) { // set fill character in output stream + +$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 f8 00 + 00 00 sub rsp, 248 ; 000000f8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FAD76A5B_iomanip + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 50 : static_assert(is_same_v<_Elem, _Elem2>, "wrong character type for setfill"); +; 51 : +; 52 : _Ostr.fill(_Manip._Fill); + + 00024 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 0002b 48 8b 00 mov rax, QWORD PTR [rax] + 0002e 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00032 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 00039 48 03 c8 add rcx, rax + 0003c 48 8b c1 mov rax, rcx + 0003f 48 89 85 c0 00 + 00 00 mov QWORD PTR tv79[rbp], rax + 00046 48 8b 85 f8 00 + 00 00 mov rax, QWORD PTR _Manip$[rbp] + 0004d 0f b6 10 movzx edx, BYTE PTR [rax] + 00050 48 8b 8d c0 00 + 00 00 mov rcx, QWORD PTR tv79[rbp] + 00057 ff 15 00 00 00 + 00 call QWORD PTR __imp_?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z + +; 53 : return _Ostr; + + 0005d 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + +; 54 : } + + 00064 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 0006b 5f pop rdi + 0006c 5d pop rbp + 0006d c3 ret 0 +??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z ENDP ; std::operator<<,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\iomanip +; COMDAT ??0?$_Fillobj@D@std@@QEAA@D@Z +_TEXT SEGMENT +this$ = 224 +_Ch$ = 232 +??0?$_Fillobj@D@std@@QEAA@D@Z PROC ; std::_Fillobj::_Fillobj, COMDAT + +; 27 : _Fillobj(_Elem _Ch) : _Fill(_Ch) {} + +$LN3: + 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl + 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 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FAD76A5B_iomanip + 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00023 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0002a 0f b6 8d e8 00 + 00 00 movzx ecx, BYTE PTR _Ch$[rbp] + 00031 88 08 mov BYTE PTR [rax], cl + 00033 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003a 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00041 5f pop rdi + 00042 5d pop rbp + 00043 c3 ret 0 +??0?$_Fillobj@D@std@@QEAA@D@Z ENDP ; std::_Fillobj::_Fillobj +_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\iomanip +; COMDAT ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z +_TEXT SEGMENT +__$ReturnUdt$ = 224 +_Ch$ = 232 +??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z PROC ; std::setfill, COMDAT + +; 34 : _NODISCARD _Fillobj<_Elem> setfill(_Elem _Ch) { + +$LN3: + 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl + 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 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FAD76A5B_iomanip + 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 35 : return _Fillobj<_Elem>(_Ch); + + 00023 0f b6 95 e8 00 + 00 00 movzx edx, BYTE PTR _Ch$[rbp] + 0002a 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] + 00031 e8 00 00 00 00 call ??0?$_Fillobj@D@std@@QEAA@D@Z ; std::_Fillobj::_Fillobj + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] + +; 36 : } + + 0003d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ENDP ; std::setfill +_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\iomanip +; COMDAT ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z +_TEXT SEGMENT +tv79 = 192 +_Ostr$ = 240 +_Manip$ = 248 +??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z PROC ; std::operator<<,__int64>, COMDAT + +; 423 : const _Smanip<_Arg>& _Manip) { // insert by calling function with output stream and argument + +$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 f8 00 + 00 00 sub rsp, 248 ; 000000f8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FAD76A5B_iomanip + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 424 : (*_Manip._Pfun)(_Ostr, _Manip._Manarg); + + 00024 48 8b 85 f8 00 + 00 00 mov rax, QWORD PTR _Manip$[rbp] + 0002b 48 8b 00 mov rax, QWORD PTR [rax] + 0002e 48 89 85 c0 00 + 00 00 mov QWORD PTR tv79[rbp], rax + 00035 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + 0003c 48 8b 00 mov rax, QWORD PTR [rax] + 0003f 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00043 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR _Ostr$[rbp] + 0004a 48 03 c8 add rcx, rax + 0004d 48 8b c1 mov rax, rcx + 00050 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR _Manip$[rbp] + 00057 48 8b 51 08 mov rdx, QWORD PTR [rcx+8] + 0005b 48 8b c8 mov rcx, rax + 0005e ff 95 c0 00 00 + 00 call QWORD PTR tv79[rbp] + +; 425 : return _Ostr; + + 00064 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Ostr$[rbp] + +; 426 : } + + 0006b 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 00072 5f pop rdi + 00073 5d pop rbp + 00074 c3 ret 0 +??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ENDP ; std::operator<<,__int64> +_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\cmath ; COMDAT ??$log2@H$0A@@@YANH@Z _TEXT SEGMENT _Left$ = 224 ??$log2@H$0A@@@YANH@Z PROC ; log2, COMDAT -; 636 : _GENERIC_MATH1(log2) +; 662 : _GENERIC_MATH1(log2) $LN3: 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx @@ -8357,29 +8490,22 @@ $LN3: 00006 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00012 48 8b fc mov rdi, rsp - 00015 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 0001a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001f f3 ab rep stosd - 00021 8b 8c 24 18 01 - 00 00 mov ecx, DWORD PTR [rsp+280] - 00028 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0A4FAB91_cmath - 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00034 f2 0f 2a 85 e0 + 00012 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__6D66DEAE_cmath + 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e f2 0f 2a 85 e0 00 00 00 cvtsi2sd xmm0, DWORD PTR _Left$[rbp] - 0003c ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_log2 - 00042 90 npad 1 - 00043 48 8d a5 c8 00 + 0002c 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 + 00033 5f pop rdi + 00034 5d pop rbp + 00035 c3 ret 0 ??$log2@H$0A@@@YANH@Z ENDP ; log2 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xutility +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility ; COMDAT ??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z _TEXT SEGMENT $T1 = 200 @@ -8392,7 +8518,7 @@ _Last$ = 320 _Val$ = 328 ??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z PROC ; std::find > >,unsigned long>, COMDAT -; 5171 : _NODISCARD _CONSTEXPR20 _InIt find(_InIt _First, const _InIt _Last, const _Ty& _Val) { // find first matching _Val +; 5340 : _NODISCARD _CONSTEXPR20 _InIt find(_InIt _First, const _InIt _Last, const _Ty& _Val) { // find first matching _Val $LN7: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 @@ -8404,82 +8530,76 @@ $LN7: 00016 48 81 ec 38 01 00 00 sub rsp, 312 ; 00000138H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8b fc mov rdi, rsp - 00025 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00039 c7 85 e4 00 00 + 00022 c7 85 e4 00 00 00 00 00 00 00 mov DWORD PTR $T2[rbp], 0 - 00043 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility - 0004a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0002c 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility + 00033 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 5172 : _Adl_verify_range(_First, _Last); +; 5341 : _Adl_verify_range(_First, _Last); - 0004f 48 8b 95 40 01 + 00038 48 8b 95 40 01 00 00 mov rdx, QWORD PTR _Last$[rbp] - 00056 48 8b 8d 38 01 + 0003f 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR _First$[rbp] - 0005d e8 00 00 00 00 call ??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z ; std::_Adl_verify_range > >,std::_Vector_iterator > > > + 00046 e8 00 00 00 00 call ??$_Adl_verify_range@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@V12@@std@@YAXAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@0@Z ; std::_Adl_verify_range > >,std::_Vector_iterator > > > -; 5173 : _Seek_wrapped(_First, _Find_unchecked(_Get_unwrapped(_First), _Get_unwrapped(_Last), _Val)); +; 5342 : _Seek_wrapped(_First, _Find_unchecked(_Get_unwrapped(_First), _Get_unwrapped(_Last), _Val)); - 00062 48 8b 8d 40 01 + 0004b 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Last$[rbp] - 00069 e8 00 00 00 00 call ??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > const &> - 0006e 48 89 85 f8 00 + 00052 e8 00 00 00 00 call ??$_Get_unwrapped@AEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEBV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > const &> + 00057 48 89 85 f8 00 00 00 mov QWORD PTR tv79[rbp], rax - 00075 48 8b 8d 38 01 + 0005e 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR _First$[rbp] - 0007c e8 00 00 00 00 call ??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > &> - 00081 48 89 85 00 01 + 00065 e8 00 00 00 00 call ??$_Get_unwrapped@AEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@@std@@YA?A_TAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z ; std::_Get_unwrapped > > &> + 0006a 48 89 85 00 01 00 00 mov QWORD PTR tv77[rbp], rax - 00088 4c 8b 85 48 01 + 00071 4c 8b 85 48 01 00 00 mov r8, QWORD PTR _Val$[rbp] - 0008f 48 8b 95 f8 00 + 00078 48 8b 95 f8 00 00 00 mov rdx, QWORD PTR tv79[rbp] - 00096 48 8b 8d 00 01 + 0007f 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR tv77[rbp] - 0009d e8 00 00 00 00 call ??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z ; std::_Find_unchecked - 000a2 48 89 85 c8 00 + 00086 e8 00 00 00 00 call ??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z ; std::_Find_unchecked + 0008b 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 000a9 48 8d 95 c8 00 + 00092 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 000b0 48 8b 8d 38 01 + 00099 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR _First$[rbp] - 000b7 e8 00 00 00 00 call ??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z ; std::_Seek_wrapped > >,unsigned long *> + 000a0 e8 00 00 00 00 call ??$_Seek_wrapped@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@PEAK@std@@YAXAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@$$QEAPEAK@Z ; std::_Seek_wrapped > >,unsigned long *> -; 5174 : return _First; +; 5343 : return _First; - 000bc 48 8b 95 38 01 + 000a5 48 8b 95 38 01 00 00 mov rdx, QWORD PTR _First$[rbp] - 000c3 48 8b 8d 30 01 + 000ac 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] - 000ca e8 00 00 00 00 call ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z - 000cf 8b 85 e4 00 00 + 000b3 e8 00 00 00 00 call ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z + 000b8 8b 85 e4 00 00 00 mov eax, DWORD PTR $T2[rbp] - 000d5 83 c8 01 or eax, 1 - 000d8 89 85 e4 00 00 + 000be 83 c8 01 or eax, 1 + 000c1 89 85 e4 00 00 00 mov DWORD PTR $T2[rbp], eax - 000de 48 8b 8d 38 01 + 000c7 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR _First$[rbp] - 000e5 e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 000ea 90 npad 1 - 000eb 48 8b 8d 40 01 + 000ce e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 000d3 90 npad 1 + 000d4 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Last$[rbp] - 000f2 e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 000f7 48 8b 85 30 01 + 000db e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 000e0 48 8b 85 30 01 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] -; 5175 : } +; 5344 : } - 000fe 48 8d a5 18 01 + 000e7 48 8d a5 18 01 00 00 lea rsp, QWORD PTR [rbp+280] - 00105 5f pop rdi - 00106 5d pop rbp - 00107 c3 ret 0 + 000ee 5f pop rdi + 000ef 5d pop rbp + 000f0 c3 ret 0 ??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z ENDP ; std::find > >,unsigned long> _TEXT ENDS ; COMDAT text$x @@ -8604,34 +8724,28 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 4c 8b 85 f0 00 + 0001d 4c 8b 85 f0 00 00 00 mov r8, QWORD PTR __param1$[rbp] - 0003b 48 8b 95 e8 00 + 00024 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR __param0$[rbp] - 00042 48 8b 8d e0 00 + 0002b 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00049 e8 00 00 00 00 call ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z ; std::_Vector_const_iterator > >::_Vector_const_iterator > > - 0004e 48 8b 85 e0 00 + 00032 e8 00 00 00 00 call ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z ; std::_Vector_const_iterator > >::_Vector_const_iterator > > + 00037 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00055 48 8d a5 c8 00 + 0003e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005c 5f pop rdi - 0005d 5d pop rbp - 0005e c3 ret 0 + 00045 5f pop rdi + 00046 5d pop rbp + 00047 c3 ret 0 ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z ENDP ; std::_Vector_iterator > >::_Vector_iterator > > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z +; COMDAT ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z _TEXT SEGMENT this$ = 224 __that$ = 232 -??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z PROC ; std::_Vector_iterator > >::_Vector_iterator > >, COMDAT +??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z PROC ; std::_Vector_iterator > >::_Vector_iterator > >, 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 @@ -8640,25 +8754,19 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8b 95 e8 00 + 00018 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR __that$[rbp] - 00036 48 8b 8d e0 00 + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003d e8 00 00 00 00 call ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z - 00042 48 8b 85 e0 00 + 00026 e8 00 00 00 00 call ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z + 0002b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00049 48 8d a5 c8 00 + 00032 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 -??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z ENDP ; std::_Vector_iterator > >::_Vector_iterator > > + 00039 5f pop rdi + 0003a 5d pop rbp + 0003b c3 ret 0 +??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z ENDP ; std::_Vector_iterator > >::_Vector_iterator > > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; COMDAT ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ @@ -8672,30 +8780,24 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8b 8d e0 00 + 00013 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00031 e8 00 00 00 00 call ??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 00036 48 8d a5 c8 00 + 0001a e8 00 00 00 00 call ??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003d 5f pop rdi - 0003e 5d pop rbp - 0003f c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ ENDP ; std::_Vector_iterator > >::~_Vector_iterator > > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ _TEXT SEGMENT this$ = 224 ?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ PROC ; std::_Vector_iterator > >::_Unwrapped, COMDAT -; 309 : _NODISCARD value_type* _Unwrapped() const { +; 335 : _NODISCARD _CONSTEXPR20_CONTAINER value_type* _Unwrapped() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -8704,38 +8806,32 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 310 : return _Unfancy(this->_Ptr); + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 336 : return _Unfancy(this->_Ptr); + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8b 48 10 mov rcx, QWORD PTR [rax+16] - 00041 e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy + 00026 48 8b 48 10 mov rcx, QWORD PTR [rax+16] + 0002a e8 00 00 00 00 call ??$_Unfancy@K@std@@YAPEAKPEAK@Z ; std::_Unfancy -; 311 : } +; 337 : } - 00046 48 8d a5 c8 00 + 0002f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004d 5f pop rdi - 0004e 5d pop rbp - 0004f c3 ret 0 + 00036 5f pop rdi + 00037 5d pop rbp + 00038 c3 ret 0 ?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ ENDP ; std::_Vector_iterator > >::_Unwrapped _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z +; COMDAT ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z _TEXT SEGMENT this$ = 224 __that$ = 232 -??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z PROC ; std::_Vector_const_iterator > >::_Vector_const_iterator > >, COMDAT +??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z PROC ; std::_Vector_const_iterator > >::_Vector_const_iterator > >, 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 @@ -8744,31 +8840,25 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8b 95 e8 00 + 00018 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR __that$[rbp] - 00036 48 8b 8d e0 00 + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003d e8 00 00 00 00 call ??0_Iterator_base12@std@@QEAA@AEBU01@@Z ; std::_Iterator_base12::_Iterator_base12 - 00042 48 8b 85 e0 00 + 00026 e8 00 00 00 00 call ??0_Iterator_base12@std@@QEAA@AEBU01@@Z ; std::_Iterator_base12::_Iterator_base12 + 0002b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00049 48 8b 8d e8 00 + 00032 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR __that$[rbp] - 00050 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] - 00054 48 89 48 10 mov QWORD PTR [rax+16], rcx - 00058 48 8b 85 e0 00 + 00039 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 0003d 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8d a5 c8 00 + 00048 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 -??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z ENDP ; std::_Vector_const_iterator > >::_Vector_const_iterator > > + 0004f 5f pop rdi + 00050 5d pop rbp + 00051 c3 ret 0 +??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z ENDP ; std::_Vector_const_iterator > >::_Vector_const_iterator > > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; COMDAT ??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ @@ -8782,31 +8872,25 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8b 8d e0 00 + 00013 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00031 e8 00 00 00 00 call ??1_Iterator_base12@std@@QEAA@XZ ; std::_Iterator_base12::~_Iterator_base12 - 00036 48 8d a5 c8 00 + 0001a e8 00 00 00 00 call ??1_Iterator_base12@std@@QEAA@XZ ; std::_Iterator_base12::~_Iterator_base12 + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003d 5f pop rdi - 0003e 5d pop rbp - 0003f c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ ENDP ; std::_Vector_const_iterator > >::~_Vector_const_iterator > > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z _TEXT SEGMENT this$ = 224 _It$ = 232 ?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z PROC ; std::_Vector_const_iterator > >::_Seek_to, COMDAT -; 194 : void _Seek_to(const value_type* _It) { +; 208 : _CONSTEXPR20_CONTAINER void _Seek_to(const value_type* _It) noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -8816,36 +8900,30 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 195 : _Ptr = _Refancy<_Tptr>(const_cast(_It)); - - 0003b 48 8b 8d e8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 209 : _Ptr = _Refancy<_Tptr>(const_cast(_It)); + + 00024 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _It$[rbp] - 00042 e8 00 00 00 00 call ??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z ; std::_Refancy - 00047 48 8b 8d e0 00 + 0002b e8 00 00 00 00 call ??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z ; std::_Refancy + 00030 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0004e 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00037 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 196 : } +; 210 : } - 00052 48 8d a5 c8 00 + 0003b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00059 5f pop rdi - 0005a 5d pop rbp - 0005b c3 ret 0 + 00042 5f pop rdi + 00043 5d pop rbp + 00044 c3 ret 0 ?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z ENDP ; std::_Vector_const_iterator > >::_Seek_to _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z _TEXT SEGMENT tv69 = 192 @@ -8853,7 +8931,7 @@ _First$ = 240 _Last$ = 248 ?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z PROC ; std::_Verify_range, COMDAT -; 182 : friend void _Verify_range(const _Vector_const_iterator& _First, const _Vector_const_iterator& _Last) { +; 196 : const _Vector_const_iterator& _First, const _Vector_const_iterator& _Last) noexcept { $LN21: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -8863,138 +8941,130 @@ $LN21: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00018 48 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode $LN4@Verify_ran: -; 183 : _STL_VERIFY(_First._Getcont() == _Last._Getcont(), "vector iterators in range are from different containers"); +; 197 : _STL_VERIFY(_First._Getcont() == _Last._Getcont(), "vector iterators in range are from different containers"); - 0003b 48 8b 8d f0 00 + 00024 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR _First$[rbp] - 00042 e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont - 00047 48 89 85 c0 00 + 0002b e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont + 00030 48 89 85 c0 00 00 00 mov QWORD PTR tv69[rbp], rax - 0004e 48 8b 8d f8 00 + 00037 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _Last$[rbp] - 00055 e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont - 0005a 48 8b 8d c0 00 + 0003e e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont + 00043 48 8b 8d c0 00 00 00 mov rcx, QWORD PTR tv69[rbp] - 00061 48 3b c8 cmp rcx, rax - 00064 75 02 jne SHORT $LN14@Verify_ran - 00066 eb 6b jmp SHORT $LN15@Verify_ran -$LN14@Verify_ran: + 0004a 48 3b c8 cmp rcx, rax + 0004d 75 02 jne SHORT $LN7@Verify_ran + 0004f eb 6b jmp SHORT $LN15@Verify_ran $LN7@Verify_ran: - 00068 48 8d 05 00 00 + 00051 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0DI@PBEELKIF@vector?5iterators?5in?5range?5are?5f@ - 0006f 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 00074 48 8d 05 00 00 + 00058 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 0005d 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 0007b 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 00080 45 33 c9 xor r9d, r9d - 00083 41 b8 b7 00 00 - 00 mov r8d, 183 ; 000000b7H - 00089 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GH@HACIOKNJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00090 b9 02 00 00 00 mov ecx, 2 - 00095 ff 15 00 00 00 + 00064 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 00069 45 33 c9 xor r9d, r9d + 0006c 41 b8 c5 00 00 + 00 mov r8d, 197 ; 000000c5H + 00072 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GH@IJJCCHP@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00079 b9 02 00 00 00 mov ecx, 2 + 0007e ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 0009b 83 f8 01 cmp eax, 1 - 0009e 75 03 jne SHORT $LN19@Verify_ran - 000a0 cc int 3 - 000a1 33 c0 xor eax, eax + 00084 83 f8 01 cmp eax, 1 + 00087 75 03 jne SHORT $LN19@Verify_ran + 00089 cc int 3 + 0008a 33 c0 xor eax, eax $LN19@Verify_ran: - 000a3 48 c7 44 24 20 + 0008c 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 000ac 41 b9 b7 00 00 - 00 mov r9d, 183 ; 000000b7H - 000b2 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1MO@KFAGNMIJ@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 000b9 48 8d 15 00 00 + 00095 41 b9 c5 00 00 + 00 mov r9d, 197 ; 000000c5H + 0009b 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1MO@MBPFCBOF@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000a2 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1CG@LJCPDKEJ@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAV?$AAe?$AAr?$AAi?$AAf?$AAy?$AA_?$AAr?$AAa@ - 000c0 48 8d 0d 00 00 + 000a9 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1HE@KBMFDAFB@?$AA?$CC?$AAv?$AAe?$AAc?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo@ - 000c7 ff 15 00 00 00 + 000b0 ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 000cd 33 c0 xor eax, eax - 000cf 85 c0 test eax, eax - 000d1 75 95 jne SHORT $LN7@Verify_ran + 000b6 33 c0 xor eax, eax + 000b8 85 c0 test eax, eax + 000ba 75 95 jne SHORT $LN7@Verify_ran $LN15@Verify_ran: - 000d3 33 c0 xor eax, eax - 000d5 85 c0 test eax, eax - 000d7 0f 85 5e ff ff + 000bc 33 c0 xor eax, eax + 000be 85 c0 test eax, eax + 000c0 0f 85 5e ff ff ff jne $LN4@Verify_ran $LN10@Verify_ran: -; 184 : _STL_VERIFY(_First._Ptr <= _Last._Ptr, "vector iterator range transposed"); +; 198 : _STL_VERIFY(_First._Ptr <= _Last._Ptr, "vector iterator range transposed"); - 000dd 48 8b 85 f0 00 + 000c6 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _First$[rbp] - 000e4 48 8b 8d f8 00 + 000cd 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _Last$[rbp] - 000eb 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] - 000ef 48 39 48 10 cmp QWORD PTR [rax+16], rcx - 000f3 77 02 ja SHORT $LN16@Verify_ran - 000f5 eb 6b jmp SHORT $LN17@Verify_ran -$LN16@Verify_ran: + 000d4 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 000d8 48 39 48 10 cmp QWORD PTR [rax+16], rcx + 000dc 77 02 ja SHORT $LN13@Verify_ran + 000de eb 6b jmp SHORT $LN17@Verify_ran $LN13@Verify_ran: - 000f7 48 8d 05 00 00 + 000e0 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0CB@LIAHLBAO@vector?5iterator?5range?5transpose@ - 000fe 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 00103 48 8d 05 00 00 + 000e7 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 000ec 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 0010a 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 0010f 45 33 c9 xor r9d, r9d - 00112 41 b8 b8 00 00 - 00 mov r8d, 184 ; 000000b8H - 00118 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GH@HACIOKNJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0011f b9 02 00 00 00 mov ecx, 2 - 00124 ff 15 00 00 00 + 000f3 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000f8 45 33 c9 xor r9d, r9d + 000fb 41 b8 c6 00 00 + 00 mov r8d, 198 ; 000000c6H + 00101 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GH@IJJCCHP@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00108 b9 02 00 00 00 mov ecx, 2 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 0012a 83 f8 01 cmp eax, 1 - 0012d 75 03 jne SHORT $LN20@Verify_ran - 0012f cc int 3 - 00130 33 c0 xor eax, eax + 00113 83 f8 01 cmp eax, 1 + 00116 75 03 jne SHORT $LN20@Verify_ran + 00118 cc int 3 + 00119 33 c0 xor eax, eax $LN20@Verify_ran: - 00132 48 c7 44 24 20 + 0011b 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 0013b 41 b9 b8 00 00 - 00 mov r9d, 184 ; 000000b8H - 00141 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1MO@KFAGNMIJ@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 00148 48 8d 15 00 00 + 00124 41 b9 c6 00 00 + 00 mov r9d, 198 ; 000000c6H + 0012a 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1MO@MBPFCBOF@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 00131 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1CG@LJCPDKEJ@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAV?$AAe?$AAr?$AAi?$AAf?$AAy?$AA_?$AAr?$AAa@ - 0014f 48 8d 0d 00 00 + 00138 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1EG@ODKBEHFN@?$AA?$CC?$AAv?$AAe?$AAc?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo@ - 00156 ff 15 00 00 00 + 0013f ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 0015c 33 c0 xor eax, eax - 0015e 85 c0 test eax, eax - 00160 75 95 jne SHORT $LN13@Verify_ran + 00145 33 c0 xor eax, eax + 00147 85 c0 test eax, eax + 00149 75 95 jne SHORT $LN13@Verify_ran $LN17@Verify_ran: - 00162 33 c0 xor eax, eax - 00164 85 c0 test eax, eax - 00166 0f 85 71 ff ff + 0014b 33 c0 xor eax, eax + 0014d 85 c0 test eax, eax + 0014f 0f 85 71 ff ff ff jne $LN10@Verify_ran -; 185 : } +; 199 : } - 0016c 48 8d a5 d8 00 + 00155 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 00173 5f pop rdi - 00174 5d pop rbp - 00175 c3 ret 0 + 0015c 5f pop rdi + 0015d 5d pop rbp + 0015e c3 ret 0 ?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z ENDP ; std::_Verify_range _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z _TEXT SEGMENT tv69 = 192 @@ -9002,7 +9072,7 @@ this$ = 240 _Right$ = 248 ?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z PROC ; std::_Vector_const_iterator > >::_Compat, COMDAT -; 173 : void _Compat(const _Vector_const_iterator& _Right) const { // test for compatible iterator pair +; 185 : _CONSTEXPR20_CONTAINER void _Compat(const _Vector_const_iterator& _Right) const noexcept { $LN12: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -9012,89 +9082,83 @@ $LN12: 0000c 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00018 48 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode $LN4@Compat: -; 174 : #if _ITERATOR_DEBUG_LEVEL == 0 -; 175 : (void) _Right; -; 176 : #else // ^^^ _ITERATOR_DEBUG_LEVEL == 0 ^^^ // vvv _ITERATOR_DEBUG_LEVEL != 0 vvv -; 177 : _STL_VERIFY(this->_Getcont() == _Right._Getcont(), "vector iterators incompatible"); +; 186 : // test for compatible iterator pair +; 187 : #if _ITERATOR_DEBUG_LEVEL == 0 +; 188 : (void) _Right; +; 189 : #else // ^^^ _ITERATOR_DEBUG_LEVEL == 0 ^^^ // vvv _ITERATOR_DEBUG_LEVEL != 0 vvv +; 190 : _STL_VERIFY(this->_Getcont() == _Right._Getcont(), "vector iterators incompatible"); - 0003b 48 8b 8d f0 00 + 00024 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00042 e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont - 00047 48 89 85 c0 00 + 0002b e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont + 00030 48 89 85 c0 00 00 00 mov QWORD PTR tv69[rbp], rax - 0004e 48 8b 8d f8 00 + 00037 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _Right$[rbp] - 00055 e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont - 0005a 48 8b 8d c0 00 + 0003e e8 00 00 00 00 call ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ; std::_Iterator_base12::_Getcont + 00043 48 8b 8d c0 00 00 00 mov rcx, QWORD PTR tv69[rbp] - 00061 48 3b c8 cmp rcx, rax - 00064 75 02 jne SHORT $LN8@Compat - 00066 eb 6b jmp SHORT $LN9@Compat -$LN8@Compat: + 0004a 48 3b c8 cmp rcx, rax + 0004d 75 02 jne SHORT $LN7@Compat + 0004f eb 6b jmp SHORT $LN9@Compat $LN7@Compat: - 00068 48 8d 05 00 00 + 00051 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BO@CAOBBIOC@vector?5iterators?5incompatible@ - 0006f 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 00074 48 8d 05 00 00 + 00058 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 0005d 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 0007b 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 00080 45 33 c9 xor r9d, r9d - 00083 41 b8 b1 00 00 - 00 mov r8d, 177 ; 000000b1H - 00089 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GH@HACIOKNJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00090 b9 02 00 00 00 mov ecx, 2 - 00095 ff 15 00 00 00 + 00064 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 00069 45 33 c9 xor r9d, r9d + 0006c 41 b8 be 00 00 + 00 mov r8d, 190 ; 000000beH + 00072 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GH@IJJCCHP@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00079 b9 02 00 00 00 mov ecx, 2 + 0007e ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 0009b 83 f8 01 cmp eax, 1 - 0009e 75 03 jne SHORT $LN11@Compat - 000a0 cc int 3 - 000a1 33 c0 xor eax, eax + 00084 83 f8 01 cmp eax, 1 + 00087 75 03 jne SHORT $LN11@Compat + 00089 cc int 3 + 0008a 33 c0 xor eax, eax $LN11@Compat: - 000a3 48 c7 44 24 20 + 0008c 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 000ac 41 b9 b1 00 00 - 00 mov r9d, 177 ; 000000b1H - 000b2 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1MO@KFAGNMIJ@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 000b9 48 8d 15 00 00 + 00095 41 b9 be 00 00 + 00 mov r9d, 190 ; 000000beH + 0009b 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1MO@MBPFCBOF@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 000a2 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_1NC@CDEGKPGM@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAV?$AAe?$AAc?$AAt?$AAo?$AAr?$AA_?$AAc?$AAo@ - 000c0 48 8d 0d 00 00 + 000a9 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1EA@DJDGNIII@?$AA?$CC?$AAv?$AAe?$AAc?$AAt?$AAo?$AAr?$AA?5?$AAi?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo@ - 000c7 ff 15 00 00 00 + 000b0 ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 000cd 33 c0 xor eax, eax - 000cf 85 c0 test eax, eax - 000d1 75 95 jne SHORT $LN7@Compat + 000b6 33 c0 xor eax, eax + 000b8 85 c0 test eax, eax + 000ba 75 95 jne SHORT $LN7@Compat $LN9@Compat: - 000d3 33 c0 xor eax, eax - 000d5 85 c0 test eax, eax - 000d7 0f 85 5e ff ff + 000bc 33 c0 xor eax, eax + 000be 85 c0 test eax, eax + 000c0 0f 85 5e ff ff ff jne $LN4@Compat -; 178 : #endif // _ITERATOR_DEBUG_LEVEL == 0 -; 179 : } +; 191 : #endif // _ITERATOR_DEBUG_LEVEL == 0 +; 192 : } - 000dd 48 8d a5 d8 00 + 000c6 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 000e4 5f pop rdi - 000e5 5d pop rbp - 000e6 c3 ret 0 + 000cd 5f pop rdi + 000ce 5d pop rbp + 000cf c3 ret 0 ?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z ENDP ; std::_Vector_const_iterator > >::_Compat _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z _TEXT SEGMENT tv69 = 192 @@ -9102,7 +9166,7 @@ this$ = 240 _Right$ = 248 ??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z PROC ; std::_Vector_const_iterator > >::operator!=, COMDAT -; 152 : _NODISCARD bool operator!=(const _Vector_const_iterator& _Right) const { +; 163 : _NODISCARD bool operator!=(const _Vector_const_iterator& _Right) const noexcept { $LN5: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -9112,47 +9176,41 @@ $LN5: 0000c 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 153 : return !(*this == _Right); - - 0003b 48 8b 95 f8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 164 : return !(*this == _Right); + + 00024 48 8b 95 f8 00 00 00 mov rdx, QWORD PTR _Right$[rbp] - 00042 48 8b 8d f0 00 + 0002b 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00049 e8 00 00 00 00 call ??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ; std::_Vector_const_iterator > >::operator== - 0004e 0f b6 c0 movzx eax, al - 00051 85 c0 test eax, eax - 00053 75 0c jne SHORT $LN3@operator - 00055 c7 85 c0 00 00 + 00032 e8 00 00 00 00 call ??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ; std::_Vector_const_iterator > >::operator== + 00037 0f b6 c0 movzx eax, al + 0003a 85 c0 test eax, eax + 0003c 75 0c jne SHORT $LN3@operator + 0003e c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv69[rbp], 1 - 0005f eb 0a jmp SHORT $LN4@operator + 00048 eb 0a jmp SHORT $LN4@operator $LN3@operator: - 00061 c7 85 c0 00 00 + 0004a c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv69[rbp], 0 $LN4@operator: - 0006b 0f b6 85 c0 00 + 00054 0f b6 85 c0 00 00 00 movzx eax, BYTE PTR tv69[rbp] -; 154 : } +; 165 : } - 00072 48 8d a5 d8 00 + 0005b 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 00079 5f pop rdi - 0007a 5d pop rbp - 0007b c3 ret 0 + 00062 5f pop rdi + 00063 5d pop rbp + 00064 c3 ret 0 ??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ENDP ; std::_Vector_const_iterator > >::operator!= _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z _TEXT SEGMENT tv69 = 192 @@ -9160,7 +9218,7 @@ this$ = 240 _Right$ = 248 ??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z PROC ; std::_Vector_const_iterator > >::operator==, COMDAT -; 147 : _NODISCARD bool operator==(const _Vector_const_iterator& _Right) const { +; 152 : _NODISCARD _CONSTEXPR20_CONTAINER bool operator==(const _Vector_const_iterator& _Right) const noexcept { $LN5: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -9170,54 +9228,48 @@ $LN5: 0000c 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 148 : _Compat(_Right); - - 0003b 48 8b 95 f8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 153 : _Compat(_Right); + + 00024 48 8b 95 f8 00 00 00 mov rdx, QWORD PTR _Right$[rbp] - 00042 48 8b 8d f0 00 + 0002b 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00049 e8 00 00 00 00 call ?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z ; std::_Vector_const_iterator > >::_Compat + 00032 e8 00 00 00 00 call ?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z ; std::_Vector_const_iterator > >::_Compat -; 149 : return _Ptr == _Right._Ptr; +; 154 : return _Ptr == _Right._Ptr; - 0004e 48 8b 85 f0 00 + 00037 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00055 48 8b 8d f8 00 + 0003e 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _Right$[rbp] - 0005c 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] - 00060 48 39 48 10 cmp QWORD PTR [rax+16], rcx - 00064 75 0c jne SHORT $LN3@operator - 00066 c7 85 c0 00 00 + 00045 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 00049 48 39 48 10 cmp QWORD PTR [rax+16], rcx + 0004d 75 0c jne SHORT $LN3@operator + 0004f c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv69[rbp], 1 - 00070 eb 0a jmp SHORT $LN4@operator + 00059 eb 0a jmp SHORT $LN4@operator $LN3@operator: - 00072 c7 85 c0 00 00 + 0005b c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv69[rbp], 0 $LN4@operator: - 0007c 0f b6 85 c0 00 + 00065 0f b6 85 c0 00 00 00 movzx eax, BYTE PTR tv69[rbp] -; 150 : } +; 155 : } - 00083 48 8d a5 d8 00 + 0006c 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 0008a 5f pop rdi - 0008b 5d pop rbp - 0008c c3 ret 0 + 00073 5f pop rdi + 00074 5d pop rbp + 00075 c3 ret 0 ??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ENDP ; std::_Vector_const_iterator > >::operator== _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z _TEXT SEGMENT this$ = 224 @@ -9225,7 +9277,7 @@ _Parg$ = 232 _Pvector$ = 240 ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z PROC ; std::_Vector_const_iterator > >::_Vector_const_iterator > >, COMDAT -; 42 : _Vector_const_iterator(_Tptr _Parg, const _Container_base* _Pvector) noexcept : _Ptr(_Parg) { +; 42 : _CONSTEXPR20_CONTAINER _Vector_const_iterator(_Tptr _Parg, const _Container_base* _Pvector) noexcept : _Ptr(_Parg) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -9236,45 +9288,39 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 48 8b 8d e0 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00047 e8 00 00 00 00 call ??0_Iterator_base12@std@@QEAA@XZ ; std::_Iterator_base12::_Iterator_base12 - 0004c 48 8b 85 e0 00 + 00030 e8 00 00 00 00 call ??0_Iterator_base12@std@@QEAA@XZ ; std::_Iterator_base12::_Iterator_base12 + 00035 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00053 48 8b 8d e8 00 + 0003c 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Parg$[rbp] - 0005a 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00043 48 89 48 10 mov QWORD PTR [rax+16], rcx ; 43 : this->_Adopt(_Pvector); - 0005e 48 8b 95 f0 00 + 00047 48 8b 95 f0 00 00 00 mov rdx, QWORD PTR _Pvector$[rbp] - 00065 48 8b 8d e0 00 + 0004e 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0006c e8 00 00 00 00 call ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z ; std::_Iterator_base12::_Adopt + 00055 e8 00 00 00 00 call ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z ; std::_Iterator_base12::_Adopt ; 44 : } - 00071 48 8b 85 e0 00 + 0005a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00078 48 8d a5 c8 00 + 00061 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0007f 5f pop rdi - 00080 5d pop rbp - 00081 c3 ret 0 + 00068 5f pop rdi + 00069 5d pop rbp + 0006a c3 ret 0 ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z ENDP ; std::_Vector_const_iterator > >::_Vector_const_iterator > > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT T$1 = 8 @@ -9299,142 +9345,136 @@ $LN10: 00007 48 81 ec a8 01 00 00 sub rsp, 424 ; 000001a8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 6a 00 00 00 mov ecx, 106 ; 0000006aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 c8 - 01 00 00 mov rcx, QWORD PTR [rsp+456] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 568 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 00036 48 8b 85 a0 01 + 0001f 48 8b 85 a0 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0003d 48 8b 00 mov rax, QWORD PTR [rax] - 00040 48 89 45 08 mov QWORD PTR T$1[rbp], rax - 00044 eb 0b jmp SHORT $LN4@NcPrintBlo + 00026 48 8b 00 mov rax, QWORD PTR [rax] + 00029 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 0002d eb 0b jmp SHORT $LN4@NcPrintBlo $LN2@NcPrintBlo: - 00046 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 0004a 48 8b 00 mov rax, QWORD PTR [rax] - 0004d 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 0002f 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00033 48 8b 00 mov rax, QWORD PTR [rax] + 00036 48 89 45 08 mov QWORD PTR T$1[rbp], rax $LN4@NcPrintBlo: - 00051 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 - 00056 0f 84 03 01 00 + 0003a 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 0003f 0f 84 03 01 00 00 je $LN3@NcPrintBlo - 0005c 48 8b 85 a0 01 + 00045 48 8b 85 a0 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00063 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00067 48 8b 00 mov rax, QWORD PTR [rax] - 0006a 48 39 45 08 cmp QWORD PTR T$1[rbp], rax - 0006e 0f 84 eb 00 00 + 0004c 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00050 48 8b 00 mov rax, QWORD PTR [rax] + 00053 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 00057 0f 84 eb 00 00 00 je $LN3@NcPrintBlo ; 569 : { ; 570 : if (!(T->Flags & CODE_FLAG_IS_LABEL)) - 00074 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00078 8b 40 18 mov eax, DWORD PTR [rax+24] - 0007b 83 e0 01 and eax, 1 - 0007e 85 c0 test eax, eax - 00080 0f 85 d4 00 00 + 0005d 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00061 8b 40 18 mov eax, DWORD PTR [rax+24] + 00064 83 e0 01 and eax, 1 + 00067 85 c0 test eax, eax + 00069 0f 85 d4 00 00 00 jne $LN8@NcPrintBlo ; 571 : { ; 572 : for (uint32_t i = 0; i < T->RawDataSize; i++) - 00086 c7 45 24 00 00 + 0006f c7 45 24 00 00 00 00 mov DWORD PTR i$2[rbp], 0 - 0008d eb 08 jmp SHORT $LN7@NcPrintBlo + 00076 eb 08 jmp SHORT $LN7@NcPrintBlo $LN5@NcPrintBlo: - 0008f 8b 45 24 mov eax, DWORD PTR i$2[rbp] - 00092 ff c0 inc eax - 00094 89 45 24 mov DWORD PTR i$2[rbp], eax + 00078 8b 45 24 mov eax, DWORD PTR i$2[rbp] + 0007b ff c0 inc eax + 0007d 89 45 24 mov DWORD PTR i$2[rbp], eax $LN7@NcPrintBlo: - 00097 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 0009b 8b 40 28 mov eax, DWORD PTR [rax+40] - 0009e 39 45 24 cmp DWORD PTR i$2[rbp], eax - 000a1 0f 83 b3 00 00 + 00080 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00084 8b 40 28 mov eax, DWORD PTR [rax+40] + 00087 39 45 24 cmp DWORD PTR i$2[rbp], eax + 0008a 0f 83 b3 00 00 00 jae $LN6@NcPrintBlo ; 573 : { ; 574 : std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)T->RawData[i] << ' '; - 000a7 48 8d 15 00 00 + 00090 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?hex@std@@YAAEAVios_base@1@AEAV21@@Z ; std::hex - 000ae 48 8b 0d 00 00 + 00097 48 8b 0d 00 00 00 00 mov rcx, QWORD PTR __imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A - 000b5 ff 15 00 00 00 + 0009e ff 15 00 00 00 00 call QWORD PTR __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z - 000bb 48 89 85 48 01 + 000a4 48 89 85 48 01 00 00 mov QWORD PTR tv93[rbp], rax - 000c2 ba 02 00 00 00 mov edx, 2 - 000c7 48 8d 8d 28 01 + 000ab ba 02 00 00 00 mov edx, 2 + 000b0 48 8d 8d 28 01 00 00 lea rcx, QWORD PTR $T4[rbp] - 000ce e8 00 00 00 00 call ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z ; std::setw - 000d3 48 89 85 50 01 + 000b7 e8 00 00 00 00 call ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z ; std::setw + 000bc 48 89 85 50 01 00 00 mov QWORD PTR tv95[rbp], rax - 000da 48 8b 95 50 01 + 000c3 48 8b 95 50 01 00 00 mov rdx, QWORD PTR tv95[rbp] - 000e1 48 8b 8d 48 01 + 000ca 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 000e8 e8 00 00 00 00 call ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ; std::operator<<,__int64> - 000ed 48 89 85 58 01 + 000d1 e8 00 00 00 00 call ??$?6DU?$char_traits@D@std@@_J@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Smanip@_J@0@@Z ; std::operator<<,__int64> + 000d6 48 89 85 58 01 00 00 mov QWORD PTR tv130[rbp], rax - 000f4 b2 30 mov dl, 48 ; 00000030H - 000f6 48 8d 8d 04 01 + 000dd b2 30 mov dl, 48 ; 00000030H + 000df 48 8d 8d 04 01 00 00 lea rcx, QWORD PTR $T3[rbp] - 000fd e8 00 00 00 00 call ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ; std::setfill - 00102 48 89 85 60 01 + 000e6 e8 00 00 00 00 call ??$setfill@D@std@@YA?AU?$_Fillobj@D@0@D@Z ; std::setfill + 000eb 48 89 85 60 01 00 00 mov QWORD PTR tv132[rbp], rax - 00109 48 8b 95 60 01 + 000f2 48 8b 95 60 01 00 00 mov rdx, QWORD PTR tv132[rbp] - 00110 48 8b 8d 58 01 + 000f9 48 8b 8d 58 01 00 00 mov rcx, QWORD PTR tv130[rbp] - 00117 e8 00 00 00 00 call ??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z ; std::operator<<,char> - 0011c 48 89 85 68 01 + 00100 e8 00 00 00 00 call ??$?6DU?$char_traits@D@std@@D@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBU?$_Fillobj@D@0@@Z ; std::operator<<,char> + 00105 48 89 85 68 01 00 00 mov QWORD PTR tv144[rbp], rax - 00123 8b 45 24 mov eax, DWORD PTR i$2[rbp] - 00126 48 8b 4d 08 mov rcx, QWORD PTR T$1[rbp] - 0012a 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 0012e 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00132 89 85 70 01 00 + 0010c 8b 45 24 mov eax, DWORD PTR i$2[rbp] + 0010f 48 8b 4d 08 mov rcx, QWORD PTR T$1[rbp] + 00113 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00117 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] + 0011b 89 85 70 01 00 00 mov DWORD PTR tv142[rbp], eax - 00138 8b 95 70 01 00 + 00121 8b 95 70 01 00 00 mov edx, DWORD PTR tv142[rbp] - 0013e 48 8b 8d 68 01 + 00127 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR tv144[rbp] - 00145 ff 15 00 00 00 + 0012e ff 15 00 00 00 00 call QWORD PTR __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z - 0014b b2 20 mov dl, 32 ; 00000020H - 0014d 48 8b c8 mov rcx, rax - 00150 e8 00 00 00 00 call ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z ; std::operator<< > + 00134 b2 20 mov dl, 32 ; 00000020H + 00136 48 8b c8 mov rcx, rax + 00139 e8 00 00 00 00 call ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z ; std::operator<< > ; 575 : } - 00155 e9 35 ff ff ff jmp $LN5@NcPrintBlo + 0013e e9 35 ff ff ff jmp $LN5@NcPrintBlo $LN6@NcPrintBlo: $LN8@NcPrintBlo: ; 576 : } ; 577 : } - 0015a e9 e7 fe ff ff jmp $LN2@NcPrintBlo + 00143 e9 e7 fe ff ff jmp $LN2@NcPrintBlo $LN3@NcPrintBlo: ; 578 : } - 0015f 48 8d a5 88 01 + 00148 48 8d a5 88 01 00 00 lea rsp, QWORD PTR [rbp+392] - 00166 5f pop rdi - 00167 5d pop rbp - 00168 c3 ret 0 + 0014f 5f pop rdi + 00150 5d pop rbp + 00151 c3 ret 0 ?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcPrintBlockCode _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT ConsoleHandle$ = 8 @@ -9454,153 +9494,147 @@ $LN11: 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 8b fc mov rdi, rsp - 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 68 - 01 00 00 mov rcx, QWORD PTR [rsp+360] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 538 : HANDLE ConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE); - 00036 b9 f5 ff ff ff mov ecx, -11 ; fffffff5H - 0003b ff 15 00 00 00 + 0001f b9 f5 ff ff ff mov ecx, -11 ; fffffff5H + 00024 ff 15 00 00 00 00 call QWORD PTR __imp_GetStdHandle - 00041 48 89 45 08 mov QWORD PTR ConsoleHandle$[rbp], rax + 0002a 48 89 45 08 mov QWORD PTR ConsoleHandle$[rbp], rax ; 539 : if (!ConsoleHandle) - 00045 48 83 7d 08 00 cmp QWORD PTR ConsoleHandle$[rbp], 0 - 0004a 75 05 jne SHORT $LN5@NcDebugPri + 0002e 48 83 7d 08 00 cmp QWORD PTR ConsoleHandle$[rbp], 0 + 00033 75 05 jne SHORT $LN5@NcDebugPri ; 540 : return; - 0004c e9 03 01 00 00 jmp $LN1@NcDebugPri + 00035 e9 03 01 00 00 jmp $LN1@NcDebugPri $LN5@NcDebugPri: ; 541 : ; 542 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 00051 48 8b 85 40 01 + 0003a 48 8b 85 40 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00058 48 8b 00 mov rax, QWORD PTR [rax] - 0005b 48 89 45 28 mov QWORD PTR T$1[rbp], rax - 0005f eb 0b jmp SHORT $LN4@NcDebugPri + 00041 48 8b 00 mov rax, QWORD PTR [rax] + 00044 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 00048 eb 0b jmp SHORT $LN4@NcDebugPri $LN2@NcDebugPri: - 00061 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00065 48 8b 00 mov rax, QWORD PTR [rax] - 00068 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 0004a 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 0004e 48 8b 00 mov rax, QWORD PTR [rax] + 00051 48 89 45 28 mov QWORD PTR T$1[rbp], rax $LN4@NcDebugPri: - 0006c 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 - 00071 0f 84 dd 00 00 + 00055 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 + 0005a 0f 84 dd 00 00 00 je $LN3@NcDebugPri - 00077 48 8b 85 40 01 + 00060 48 8b 85 40 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0007e 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00082 48 8b 00 mov rax, QWORD PTR [rax] - 00085 48 39 45 28 cmp QWORD PTR T$1[rbp], rax - 00089 0f 84 c5 00 00 + 00067 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0006b 48 8b 00 mov rax, QWORD PTR [rax] + 0006e 48 39 45 28 cmp QWORD PTR T$1[rbp], rax + 00072 0f 84 c5 00 00 00 je $LN3@NcDebugPri ; 543 : { ; 544 : if (T->Flags & CODE_FLAG_IS_LABEL) - 0008f 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00093 8b 40 18 mov eax, DWORD PTR [rax+24] - 00096 83 e0 01 and eax, 1 - 00099 85 c0 test eax, eax - 0009b 74 26 je SHORT $LN6@NcDebugPri + 00078 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 0007c 8b 40 18 mov eax, DWORD PTR [rax+24] + 0007f 83 e0 01 and eax, 1 + 00082 85 c0 test eax, eax + 00084 74 26 je SHORT $LN6@NcDebugPri ; 545 : { ; 546 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_RED); - 0009d 66 ba 06 00 mov dx, 6 - 000a1 48 8b 4d 08 mov rcx, QWORD PTR ConsoleHandle$[rbp] - 000a5 ff 15 00 00 00 + 00086 66 ba 06 00 mov dx, 6 + 0008a 48 8b 4d 08 mov rcx, QWORD PTR ConsoleHandle$[rbp] + 0008e ff 15 00 00 00 00 call QWORD PTR __imp_SetConsoleTextAttribute ; 547 : printf("Label: %u\n", T->Label); - 000ab 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 000af 8b 50 1c mov edx, DWORD PTR [rax+28] - 000b2 48 8d 0d 00 00 + 00094 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00098 8b 50 1c mov edx, DWORD PTR [rax+28] + 0009b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0L@ILJOJNOL@Label?3?5?$CFu?6@ - 000b9 e8 00 00 00 00 call printf + 000a2 e8 00 00 00 00 call printf ; 548 : } - 000be e9 8c 00 00 00 jmp $LN7@NcDebugPri + 000a7 e9 8c 00 00 00 jmp $LN7@NcDebugPri $LN6@NcDebugPri: ; 549 : else ; 550 : { ; 551 : XED_ICLASS_ENUM IClass = XedDecodedInstGetIClass(&T->XedInstruction); - 000c3 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 000c7 48 83 c0 30 add rax, 48 ; 00000030H - 000cb 48 8b c8 mov rcx, rax - 000ce e8 00 00 00 00 call xed_decoded_inst_get_iclass - 000d3 89 45 44 mov DWORD PTR IClass$2[rbp], eax + 000ac 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 000b0 48 83 c0 30 add rax, 48 ; 00000030H + 000b4 48 8b c8 mov rcx, rax + 000b7 e8 00 00 00 00 call xed_decoded_inst_get_iclass + 000bc 89 45 44 mov DWORD PTR IClass$2[rbp], eax ; 552 : if (T->Flags & CODE_FLAG_IS_REL_JMP) - 000d6 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 000da 8b 40 18 mov eax, DWORD PTR [rax+24] - 000dd 83 e0 02 and eax, 2 - 000e0 85 c0 test eax, eax - 000e2 74 46 je SHORT $LN8@NcDebugPri + 000bf 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 000c3 8b 40 18 mov eax, DWORD PTR [rax+24] + 000c6 83 e0 02 and eax, 2 + 000c9 85 c0 test eax, eax + 000cb 74 46 je SHORT $LN8@NcDebugPri ; 553 : { ; 554 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_RED); - 000e4 66 ba 06 00 mov dx, 6 - 000e8 48 8b 4d 08 mov rcx, QWORD PTR ConsoleHandle$[rbp] - 000ec ff 15 00 00 00 + 000cd 66 ba 06 00 mov dx, 6 + 000d1 48 8b 4d 08 mov rcx, QWORD PTR ConsoleHandle$[rbp] + 000d5 ff 15 00 00 00 00 call QWORD PTR __imp_SetConsoleTextAttribute ; 555 : printf("%s: %u\n", XedIClassEnumToString(IClass), T->Label); - 000f2 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 000f6 8b 40 1c mov eax, DWORD PTR [rax+28] - 000f9 89 85 14 01 00 + 000db 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 000df 8b 40 1c mov eax, DWORD PTR [rax+28] + 000e2 89 85 14 01 00 00 mov DWORD PTR tv131[rbp], eax - 000ff 8b 4d 44 mov ecx, DWORD PTR IClass$2[rbp] - 00102 e8 00 00 00 00 call xed_iclass_enum_t2str - 00107 48 89 85 18 01 + 000e8 8b 4d 44 mov ecx, DWORD PTR IClass$2[rbp] + 000eb e8 00 00 00 00 call xed_iclass_enum_t2str + 000f0 48 89 85 18 01 00 00 mov QWORD PTR tv129[rbp], rax - 0010e 44 8b 85 14 01 + 000f7 44 8b 85 14 01 00 00 mov r8d, DWORD PTR tv131[rbp] - 00115 48 8b 95 18 01 + 000fe 48 8b 95 18 01 00 00 mov rdx, QWORD PTR tv129[rbp] - 0011c 48 8d 0d 00 00 + 00105 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07KNNCJAOA@?$CFs?3?5?$CFu?6@ - 00123 e8 00 00 00 00 call printf + 0010c e8 00 00 00 00 call printf ; 556 : } - 00128 eb 25 jmp SHORT $LN9@NcDebugPri + 00111 eb 25 jmp SHORT $LN9@NcDebugPri $LN8@NcDebugPri: ; 557 : else ; 558 : { ; 559 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_BLUE); - 0012a 66 ba 03 00 mov dx, 3 - 0012e 48 8b 4d 08 mov rcx, QWORD PTR ConsoleHandle$[rbp] - 00132 ff 15 00 00 00 + 00113 66 ba 03 00 mov dx, 3 + 00117 48 8b 4d 08 mov rcx, QWORD PTR ConsoleHandle$[rbp] + 0011b ff 15 00 00 00 00 call QWORD PTR __imp_SetConsoleTextAttribute ; 560 : printf("%s\n", XedIClassEnumToString(IClass)); - 00138 8b 4d 44 mov ecx, DWORD PTR IClass$2[rbp] - 0013b e8 00 00 00 00 call xed_iclass_enum_t2str - 00140 48 8b d0 mov rdx, rax - 00143 48 8d 0d 00 00 + 00121 8b 4d 44 mov ecx, DWORD PTR IClass$2[rbp] + 00124 e8 00 00 00 00 call xed_iclass_enum_t2str + 00129 48 8b d0 mov rdx, rax + 0012c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_03OFAPEBGM@?$CFs?6@ - 0014a e8 00 00 00 00 call printf + 00133 e8 00 00 00 00 call printf $LN9@NcDebugPri: $LN7@NcDebugPri: @@ -9608,21 +9642,21 @@ $LN7@NcDebugPri: ; 562 : } ; 563 : } - 0014f e9 0d ff ff ff jmp $LN2@NcDebugPri + 00138 e9 0d ff ff ff jmp $LN2@NcDebugPri $LN3@NcDebugPri: $LN1@NcDebugPri: ; 564 : } - 00154 48 8d a5 28 01 + 0013d 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 0015b 5f pop rdi - 0015c 5d pop rbp - 0015d c3 ret 0 + 00144 5f pop rdi + 00145 5d pop rbp + 00146 c3 ret 0 ?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcDebugPrint _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT BlockEnding$ = 8 @@ -9642,106 +9676,100 @@ $LN10: 00007 48 81 ec 68 01 00 00 sub rsp, 360 ; 00000168H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 5a 00 00 00 mov ecx, 90 ; 0000005aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 88 - 01 00 00 mov rcx, QWORD PTR [rsp+392] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 523 : if (!Block->Start || !Block->End) - 00036 48 8b 85 60 01 + 0001f 48 8b 85 60 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0003d 48 83 38 00 cmp QWORD PTR [rax], 0 - 00041 74 0e je SHORT $LN6@NcDeleteBl - 00043 48 8b 85 60 01 + 00026 48 83 38 00 cmp QWORD PTR [rax], 0 + 0002a 74 0e je SHORT $LN6@NcDeleteBl + 0002c 48 8b 85 60 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0004a 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 0004f 75 05 jne SHORT $LN5@NcDeleteBl + 00033 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00038 75 05 jne SHORT $LN5@NcDeleteBl $LN6@NcDeleteBl: ; 524 : return; - 00051 e9 80 00 00 00 jmp $LN1@NcDeleteBl + 0003a e9 80 00 00 00 jmp $LN1@NcDeleteBl $LN5@NcDeleteBl: ; 525 : ; 526 : PNATIVE_CODE_LINK BlockEnding = Block->End->Next; - 00056 48 8b 85 60 01 + 0003f 48 8b 85 60 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0005d 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00061 48 8b 00 mov rax, QWORD PTR [rax] - 00064 48 89 45 08 mov QWORD PTR BlockEnding$[rbp], rax + 00046 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0004a 48 8b 00 mov rax, QWORD PTR [rax] + 0004d 48 89 45 08 mov QWORD PTR BlockEnding$[rbp], rax ; 527 : ; 528 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != BlockEnding;) - 00068 48 8b 85 60 01 + 00051 48 8b 85 60 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0006f 48 8b 00 mov rax, QWORD PTR [rax] - 00072 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 00058 48 8b 00 mov rax, QWORD PTR [rax] + 0005b 48 89 45 28 mov QWORD PTR T$1[rbp], rax $LN2@NcDeleteBl: - 00076 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 - 0007b 74 59 je SHORT $LN3@NcDeleteBl - 0007d 48 8b 45 08 mov rax, QWORD PTR BlockEnding$[rbp] - 00081 48 39 45 28 cmp QWORD PTR T$1[rbp], rax - 00085 74 4f je SHORT $LN3@NcDeleteBl + 0005f 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 + 00064 74 59 je SHORT $LN3@NcDeleteBl + 00066 48 8b 45 08 mov rax, QWORD PTR BlockEnding$[rbp] + 0006a 48 39 45 28 cmp QWORD PTR T$1[rbp], rax + 0006e 74 4f je SHORT $LN3@NcDeleteBl ; 529 : { ; 530 : PNATIVE_CODE_LINK Next = T->Next; - 00087 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 0008b 48 8b 00 mov rax, QWORD PTR [rax] - 0008e 48 89 45 48 mov QWORD PTR Next$2[rbp], rax + 00070 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00074 48 8b 00 mov rax, QWORD PTR [rax] + 00077 48 89 45 48 mov QWORD PTR Next$2[rbp], rax ; 531 : delete T; - 00092 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00096 48 89 85 28 01 + 0007b 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 0007f 48 89 85 28 01 00 00 mov QWORD PTR $T3[rbp], rax - 0009d 48 83 bd 28 01 + 00086 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T3[rbp], 0 - 000a5 74 1a je SHORT $LN8@NcDeleteBl - 000a7 ba 01 00 00 00 mov edx, 1 - 000ac 48 8b 8d 28 01 + 0008e 74 1a je SHORT $LN8@NcDeleteBl + 00090 ba 01 00 00 00 mov edx, 1 + 00095 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T3[rbp] - 000b3 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 000b8 48 89 85 38 01 + 0009c e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 000a1 48 89 85 38 01 00 00 mov QWORD PTR tv78[rbp], rax - 000bf eb 0b jmp SHORT $LN9@NcDeleteBl + 000a8 eb 0b jmp SHORT $LN9@NcDeleteBl $LN8@NcDeleteBl: - 000c1 48 c7 85 38 01 + 000aa 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv78[rbp], 0 $LN9@NcDeleteBl: ; 532 : T = Next; - 000cc 48 8b 45 48 mov rax, QWORD PTR Next$2[rbp] - 000d0 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 000b5 48 8b 45 48 mov rax, QWORD PTR Next$2[rbp] + 000b9 48 89 45 28 mov QWORD PTR T$1[rbp], rax ; 533 : } - 000d4 eb a0 jmp SHORT $LN2@NcDeleteBl + 000bd eb a0 jmp SHORT $LN2@NcDeleteBl $LN3@NcDeleteBl: $LN1@NcDeleteBl: ; 534 : } - 000d6 48 8d a5 48 01 + 000bf 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] - 000dd 5f pop rdi - 000de 5d pop rbp - 000df c3 ret 0 + 000c6 5f pop rdi + 000c7 5d pop rbp + 000c8 c3 ret 0 ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcDeleteBlock _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z _TEXT SEGMENT Buffer$ = 8 @@ -9761,146 +9789,140 @@ $LN9: 0000c 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 68 - 01 00 00 mov rcx, QWORD PTR [rsp+360] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 498 : if (!NcFixRelJmps(Block)) - 0003b 48 8b 8d 40 01 + 00024 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00042 e8 00 00 00 00 call ?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; NcFixRelJmps - 00047 85 c0 test eax, eax - 00049 75 07 jne SHORT $LN5@NcAssemble + 0002b e8 00 00 00 00 call ?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; NcFixRelJmps + 00030 85 c0 test eax, eax + 00032 75 07 jne SHORT $LN5@NcAssemble ; 499 : return NULL; - 0004b 33 c0 xor eax, eax - 0004d e9 bc 00 00 00 jmp $LN1@NcAssemble + 00034 33 c0 xor eax, eax + 00036 e9 bc 00 00 00 jmp $LN1@NcAssemble $LN5@NcAssemble: ; 500 : ; 501 : *OutSize = NcCalcBlockSize(Block); - 00052 48 8b 8d 40 01 + 0003b 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00059 e8 00 00 00 00 call ?NcCalcBlockSize@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCalcBlockSize - 0005e 48 8b 8d 48 01 + 00042 e8 00 00 00 00 call ?NcCalcBlockSize@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCalcBlockSize + 00047 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR OutSize$[rbp] - 00065 89 01 mov DWORD PTR [rcx], eax + 0004e 89 01 mov DWORD PTR [rcx], eax ; 502 : ; 503 : PUCHAR Buffer = (PUCHAR)malloc(*OutSize); - 00067 48 8b 85 48 01 + 00050 48 8b 85 48 01 00 00 mov rax, QWORD PTR OutSize$[rbp] - 0006e 8b 00 mov eax, DWORD PTR [rax] - 00070 8b c8 mov ecx, eax - 00072 ff 15 00 00 00 + 00057 8b 00 mov eax, DWORD PTR [rax] + 00059 8b c8 mov ecx, eax + 0005b ff 15 00 00 00 00 call QWORD PTR __imp_malloc - 00078 48 89 45 08 mov QWORD PTR Buffer$[rbp], rax + 00061 48 89 45 08 mov QWORD PTR Buffer$[rbp], rax ; 504 : if (!Buffer) - 0007c 48 83 7d 08 00 cmp QWORD PTR Buffer$[rbp], 0 - 00081 75 07 jne SHORT $LN6@NcAssemble + 00065 48 83 7d 08 00 cmp QWORD PTR Buffer$[rbp], 0 + 0006a 75 07 jne SHORT $LN6@NcAssemble ; 505 : return NULL; - 00083 33 c0 xor eax, eax - 00085 e9 84 00 00 00 jmp $LN1@NcAssemble + 0006c 33 c0 xor eax, eax + 0006e e9 84 00 00 00 jmp $LN1@NcAssemble $LN6@NcAssemble: ; 506 : ; 507 : PUCHAR BufferOffset = Buffer; - 0008a 48 8b 45 08 mov rax, QWORD PTR Buffer$[rbp] - 0008e 48 89 45 28 mov QWORD PTR BufferOffset$[rbp], rax + 00073 48 8b 45 08 mov rax, QWORD PTR Buffer$[rbp] + 00077 48 89 45 28 mov QWORD PTR BufferOffset$[rbp], rax ; 508 : ; 509 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 00092 48 8b 85 40 01 + 0007b 48 8b 85 40 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00099 48 8b 00 mov rax, QWORD PTR [rax] - 0009c 48 89 45 48 mov QWORD PTR T$1[rbp], rax - 000a0 eb 0b jmp SHORT $LN4@NcAssemble + 00082 48 8b 00 mov rax, QWORD PTR [rax] + 00085 48 89 45 48 mov QWORD PTR T$1[rbp], rax + 00089 eb 0b jmp SHORT $LN4@NcAssemble $LN2@NcAssemble: - 000a2 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] - 000a6 48 8b 00 mov rax, QWORD PTR [rax] - 000a9 48 89 45 48 mov QWORD PTR T$1[rbp], rax + 0008b 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] + 0008f 48 8b 00 mov rax, QWORD PTR [rax] + 00092 48 89 45 48 mov QWORD PTR T$1[rbp], rax $LN4@NcAssemble: - 000ad 48 83 7d 48 00 cmp QWORD PTR T$1[rbp], 0 - 000b2 74 56 je SHORT $LN3@NcAssemble - 000b4 48 8b 85 40 01 + 00096 48 83 7d 48 00 cmp QWORD PTR T$1[rbp], 0 + 0009b 74 56 je SHORT $LN3@NcAssemble + 0009d 48 8b 85 40 01 00 00 mov rax, QWORD PTR Block$[rbp] - 000bb 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 000bf 48 8b 00 mov rax, QWORD PTR [rax] - 000c2 48 39 45 48 cmp QWORD PTR T$1[rbp], rax - 000c6 74 42 je SHORT $LN3@NcAssemble + 000a4 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 000a8 48 8b 00 mov rax, QWORD PTR [rax] + 000ab 48 39 45 48 cmp QWORD PTR T$1[rbp], rax + 000af 74 42 je SHORT $LN3@NcAssemble ; 510 : { ; 511 : if (T->Flags & CODE_FLAG_IS_LABEL) - 000c8 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] - 000cc 8b 40 18 mov eax, DWORD PTR [rax+24] - 000cf 83 e0 01 and eax, 1 - 000d2 85 c0 test eax, eax - 000d4 74 02 je SHORT $LN7@NcAssemble + 000b1 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] + 000b5 8b 40 18 mov eax, DWORD PTR [rax+24] + 000b8 83 e0 01 and eax, 1 + 000bb 85 c0 test eax, eax + 000bd 74 02 je SHORT $LN7@NcAssemble ; 512 : continue; - 000d6 eb ca jmp SHORT $LN2@NcAssemble + 000bf eb ca jmp SHORT $LN2@NcAssemble $LN7@NcAssemble: ; 513 : ; 514 : RtlCopyMemory(BufferOffset, T->RawData, T->RawDataSize); - 000d8 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] - 000dc 8b 40 28 mov eax, DWORD PTR [rax+40] - 000df 44 8b c0 mov r8d, eax - 000e2 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] - 000e6 48 8b 50 20 mov rdx, QWORD PTR [rax+32] - 000ea 48 8b 4d 28 mov rcx, QWORD PTR BufferOffset$[rbp] - 000ee e8 00 00 00 00 call memcpy + 000c1 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] + 000c5 8b 40 28 mov eax, DWORD PTR [rax+40] + 000c8 44 8b c0 mov r8d, eax + 000cb 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] + 000cf 48 8b 50 20 mov rdx, QWORD PTR [rax+32] + 000d3 48 8b 4d 28 mov rcx, QWORD PTR BufferOffset$[rbp] + 000d7 e8 00 00 00 00 call memcpy ; 515 : BufferOffset += T->RawDataSize; - 000f3 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] - 000f7 8b 40 28 mov eax, DWORD PTR [rax+40] - 000fa 48 8b 4d 28 mov rcx, QWORD PTR BufferOffset$[rbp] - 000fe 48 03 c8 add rcx, rax - 00101 48 8b c1 mov rax, rcx - 00104 48 89 45 28 mov QWORD PTR BufferOffset$[rbp], rax + 000dc 48 8b 45 48 mov rax, QWORD PTR T$1[rbp] + 000e0 8b 40 28 mov eax, DWORD PTR [rax+40] + 000e3 48 8b 4d 28 mov rcx, QWORD PTR BufferOffset$[rbp] + 000e7 48 03 c8 add rcx, rax + 000ea 48 8b c1 mov rax, rcx + 000ed 48 89 45 28 mov QWORD PTR BufferOffset$[rbp], rax ; 516 : } - 00108 eb 98 jmp SHORT $LN2@NcAssemble + 000f1 eb 98 jmp SHORT $LN2@NcAssemble $LN3@NcAssemble: ; 517 : ; 518 : return Buffer; - 0010a 48 8b 45 08 mov rax, QWORD PTR Buffer$[rbp] + 000f3 48 8b 45 08 mov rax, QWORD PTR Buffer$[rbp] $LN1@NcAssemble: ; 519 : } - 0010e 48 8d a5 28 01 + 000f7 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 00115 5f pop rdi - 00116 5d pop rbp - 00117 c3 ret 0 + 000fe 5f pop rdi + 000ff 5d pop rbp + 00100 c3 ret 0 ?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z ENDP ; NcAssemble _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z _TEXT SEGMENT Buf$ = 8 @@ -9931,241 +9953,235 @@ $LN13: 00011 48 81 ec 08 02 00 00 sub rsp, 520 ; 00000208H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 82 00 00 00 mov ecx, 130 ; 00000082H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 28 - 02 00 00 mov rcx, QWORD PTR [rsp+552] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 466 : PUCHAR Buf = (PUCHAR)Buffer; - 00040 48 8b 85 08 02 + 00029 48 8b 85 08 02 00 00 mov rax, QWORD PTR Buffer$[rbp] - 00047 48 89 45 08 mov QWORD PTR Buf$[rbp], rax + 00030 48 89 45 08 mov QWORD PTR Buf$[rbp], rax ; 467 : ULONG Offset = 0; - 0004b c7 45 24 00 00 + 00034 c7 45 24 00 00 00 00 mov DWORD PTR Offset$[rbp], 0 $LN2@NcDisassem: ; 468 : ; 469 : while (Offset < BufferSize) - 00052 8b 85 10 02 00 + 0003b 8b 85 10 02 00 00 mov eax, DWORD PTR BufferSize$[rbp] - 00058 39 45 24 cmp DWORD PTR Offset$[rbp], eax - 0005b 0f 83 b8 01 00 + 00041 39 45 24 cmp DWORD PTR Offset$[rbp], eax + 00044 0f 83 b8 01 00 00 jae $LN3@NcDisassem ; 470 : { ; 471 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK; - 00061 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00066 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 0006b 48 89 85 88 01 + 0004a b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0004f e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00054 48 89 85 88 01 00 00 mov QWORD PTR $T5[rbp], rax - 00072 48 83 bd 88 01 + 0005b 48 83 bd 88 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0007a 74 15 je SHORT $LN6@NcDisassem - 0007c 48 8b 8d 88 01 + 00063 74 15 je SHORT $LN6@NcDisassem + 00065 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 00083 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00088 48 89 85 d8 01 + 0006c e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00071 48 89 85 d8 01 00 00 mov QWORD PTR tv76[rbp], rax - 0008f eb 0b jmp SHORT $LN7@NcDisassem + 00078 eb 0b jmp SHORT $LN7@NcDisassem $LN6@NcDisassem: - 00091 48 c7 85 d8 01 + 0007a 48 c7 85 d8 01 00 00 00 00 00 00 mov QWORD PTR tv76[rbp], 0 $LN7@NcDisassem: - 0009c 48 8b 85 d8 01 + 00085 48 8b 85 d8 01 00 00 mov rax, QWORD PTR tv76[rbp] - 000a3 48 89 85 68 01 + 0008c 48 89 85 68 01 00 00 mov QWORD PTR $T4[rbp], rax - 000aa 48 8b 85 68 01 + 00093 48 8b 85 68 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000b1 48 89 45 48 mov QWORD PTR Link$1[rbp], rax + 0009a 48 89 45 48 mov QWORD PTR Link$1[rbp], rax ; 472 : Link->Flags = CODE_FLAG_IS_INST; - 000b5 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] - 000b9 c7 40 18 04 00 + 0009e 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 000a2 c7 40 18 04 00 00 00 mov DWORD PTR [rax+24], 4 ; 473 : ULONG PossibleSize = min(15, BufferSize - Offset); - 000c0 8b 45 24 mov eax, DWORD PTR Offset$[rbp] - 000c3 8b 8d 10 02 00 + 000a9 8b 45 24 mov eax, DWORD PTR Offset$[rbp] + 000ac 8b 8d 10 02 00 00 mov ecx, DWORD PTR BufferSize$[rbp] - 000c9 2b c8 sub ecx, eax - 000cb 8b c1 mov eax, ecx - 000cd 83 f8 0f cmp eax, 15 - 000d0 76 0c jbe SHORT $LN8@NcDisassem - 000d2 c7 85 d4 01 00 + 000b2 2b c8 sub ecx, eax + 000b4 8b c1 mov eax, ecx + 000b6 83 f8 0f cmp eax, 15 + 000b9 76 0c jbe SHORT $LN8@NcDisassem + 000bb c7 85 d4 01 00 00 0f 00 00 00 mov DWORD PTR tv80[rbp], 15 - 000dc eb 13 jmp SHORT $LN9@NcDisassem + 000c5 eb 13 jmp SHORT $LN9@NcDisassem $LN8@NcDisassem: - 000de 8b 45 24 mov eax, DWORD PTR Offset$[rbp] - 000e1 8b 8d 10 02 00 + 000c7 8b 45 24 mov eax, DWORD PTR Offset$[rbp] + 000ca 8b 8d 10 02 00 00 mov ecx, DWORD PTR BufferSize$[rbp] - 000e7 2b c8 sub ecx, eax - 000e9 8b c1 mov eax, ecx - 000eb 89 85 d4 01 00 + 000d0 2b c8 sub ecx, eax + 000d2 8b c1 mov eax, ecx + 000d4 89 85 d4 01 00 00 mov DWORD PTR tv80[rbp], eax $LN9@NcDisassem: - 000f1 8b 85 d4 01 00 + 000da 8b 85 d4 01 00 00 mov eax, DWORD PTR tv80[rbp] - 000f7 89 45 64 mov DWORD PTR PossibleSize$2[rbp], eax + 000e0 89 45 64 mov DWORD PTR PossibleSize$2[rbp], eax ; 474 : XED_ERROR_ENUM DecodeError = XedDecode(&Link->XedInstruction, (Buf + Offset), PossibleSize); - 000fa 8b 45 24 mov eax, DWORD PTR Offset$[rbp] - 000fd 48 8b 4d 08 mov rcx, QWORD PTR Buf$[rbp] - 00101 48 03 c8 add rcx, rax - 00104 48 8b c1 mov rax, rcx - 00107 48 8b 4d 48 mov rcx, QWORD PTR Link$1[rbp] - 0010b 48 83 c1 30 add rcx, 48 ; 00000030H - 0010f 44 8b 45 64 mov r8d, DWORD PTR PossibleSize$2[rbp] - 00113 48 8b d0 mov rdx, rax - 00116 e8 00 00 00 00 call xed_decode - 0011b 89 85 84 00 00 + 000e3 8b 45 24 mov eax, DWORD PTR Offset$[rbp] + 000e6 48 8b 4d 08 mov rcx, QWORD PTR Buf$[rbp] + 000ea 48 03 c8 add rcx, rax + 000ed 48 8b c1 mov rax, rcx + 000f0 48 8b 4d 48 mov rcx, QWORD PTR Link$1[rbp] + 000f4 48 83 c1 30 add rcx, 48 ; 00000030H + 000f8 44 8b 45 64 mov r8d, DWORD PTR PossibleSize$2[rbp] + 000fc 48 8b d0 mov rdx, rax + 000ff e8 00 00 00 00 call xed_decode + 00104 89 85 84 00 00 00 mov DWORD PTR DecodeError$3[rbp], eax ; 475 : if (DecodeError != XED_ERROR_NONE) - 00121 83 bd 84 00 00 + 0010a 83 bd 84 00 00 00 00 cmp DWORD PTR DecodeError$3[rbp], 0 - 00128 74 67 je SHORT $LN4@NcDisassem + 00111 74 67 je SHORT $LN4@NcDisassem ; 476 : { ; 477 : printf("XedDecode failed with error %s\n", XedErrorEnumToString(DecodeError)); - 0012a 8b 8d 84 00 00 + 00113 8b 8d 84 00 00 00 mov ecx, DWORD PTR DecodeError$3[rbp] - 00130 e8 00 00 00 00 call xed_error_enum_t2str - 00135 48 8b d0 mov rdx, rax - 00138 48 8d 0d 00 00 + 00119 e8 00 00 00 00 call xed_error_enum_t2str + 0011e 48 8b d0 mov rdx, rax + 00121 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0CA@KDIENFLL@XedDecode?5failed?5with?5error?5?$CFs?6@ - 0013f e8 00 00 00 00 call printf + 00128 e8 00 00 00 00 call printf ; 478 : NcDeleteBlock(Block); - 00144 48 8b 8d 00 02 + 0012d 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR Block$[rbp] - 0014b e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 00134 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 479 : delete Link; - 00150 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] - 00154 48 89 85 a8 01 + 00139 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 0013d 48 89 85 a8 01 00 00 mov QWORD PTR $T6[rbp], rax - 0015b 48 83 bd a8 01 + 00144 48 83 bd a8 01 00 00 00 cmp QWORD PTR $T6[rbp], 0 - 00163 74 1a je SHORT $LN10@NcDisassem - 00165 ba 01 00 00 00 mov edx, 1 - 0016a 48 8b 8d a8 01 + 0014c 74 1a je SHORT $LN10@NcDisassem + 0014e ba 01 00 00 00 mov edx, 1 + 00153 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR $T6[rbp] - 00171 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 00176 48 89 85 d8 01 + 0015a e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 0015f 48 89 85 d8 01 00 00 mov QWORD PTR tv130[rbp], rax - 0017d eb 0b jmp SHORT $LN11@NcDisassem + 00166 eb 0b jmp SHORT $LN11@NcDisassem $LN10@NcDisassem: - 0017f 48 c7 85 d8 01 + 00168 48 c7 85 d8 01 00 00 00 00 00 00 mov QWORD PTR tv130[rbp], 0 $LN11@NcDisassem: ; 480 : return FALSE; - 0018a 33 c0 xor eax, eax - 0018c e9 99 00 00 00 jmp $LN1@NcDisassem + 00173 33 c0 xor eax, eax + 00175 e9 99 00 00 00 jmp $LN1@NcDisassem $LN4@NcDisassem: ; 481 : } ; 482 : Link->RawDataSize = XedDecodedInstGetLength(&Link->XedInstruction); - 00191 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] - 00195 48 83 c0 30 add rax, 48 ; 00000030H - 00199 48 8b c8 mov rcx, rax - 0019c e8 00 00 00 00 call xed_decoded_inst_get_length - 001a1 48 8b 4d 48 mov rcx, QWORD PTR Link$1[rbp] - 001a5 89 41 28 mov DWORD PTR [rcx+40], eax + 0017a 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 0017e 48 83 c0 30 add rax, 48 ; 00000030H + 00182 48 8b c8 mov rcx, rax + 00185 e8 00 00 00 00 call xed_decoded_inst_get_length + 0018a 48 8b 4d 48 mov rcx, QWORD PTR Link$1[rbp] + 0018e 89 41 28 mov DWORD PTR [rcx+40], eax ; 483 : Link->RawData = new UCHAR[Link->RawDataSize]; - 001a8 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] - 001ac 8b 40 28 mov eax, DWORD PTR [rax+40] - 001af 8b c8 mov ecx, eax - 001b1 e8 00 00 00 00 call ??_U@YAPEAX_K@Z ; operator new[] - 001b6 48 89 85 c8 01 + 00191 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 00195 8b 40 28 mov eax, DWORD PTR [rax+40] + 00198 8b c8 mov ecx, eax + 0019a e8 00 00 00 00 call ??_U@YAPEAX_K@Z ; operator new[] + 0019f 48 89 85 c8 01 00 00 mov QWORD PTR $T7[rbp], rax - 001bd 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] - 001c1 48 8b 8d c8 01 + 001a6 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 001aa 48 8b 8d c8 01 00 00 mov rcx, QWORD PTR $T7[rbp] - 001c8 48 89 48 20 mov QWORD PTR [rax+32], rcx + 001b1 48 89 48 20 mov QWORD PTR [rax+32], rcx ; 484 : RtlCopyMemory(Link->RawData, (Buf + Offset), Link->RawDataSize); - 001cc 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] - 001d0 8b 40 28 mov eax, DWORD PTR [rax+40] - 001d3 8b 4d 24 mov ecx, DWORD PTR Offset$[rbp] - 001d6 48 8b 55 08 mov rdx, QWORD PTR Buf$[rbp] - 001da 48 03 d1 add rdx, rcx - 001dd 48 8b ca mov rcx, rdx - 001e0 44 8b c0 mov r8d, eax - 001e3 48 8b d1 mov rdx, rcx - 001e6 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] - 001ea 48 8b 48 20 mov rcx, QWORD PTR [rax+32] - 001ee e8 00 00 00 00 call memcpy + 001b5 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 001b9 8b 40 28 mov eax, DWORD PTR [rax+40] + 001bc 8b 4d 24 mov ecx, DWORD PTR Offset$[rbp] + 001bf 48 8b 55 08 mov rdx, QWORD PTR Buf$[rbp] + 001c3 48 03 d1 add rdx, rcx + 001c6 48 8b ca mov rcx, rdx + 001c9 44 8b c0 mov r8d, eax + 001cc 48 8b d1 mov rdx, rcx + 001cf 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 001d3 48 8b 48 20 mov rcx, QWORD PTR [rax+32] + 001d7 e8 00 00 00 00 call memcpy ; 485 : ; 486 : NcAppendToBlock(Block, Link); - 001f3 48 8b 55 48 mov rdx, QWORD PTR Link$1[rbp] - 001f7 48 8b 8d 00 02 + 001dc 48 8b 55 48 mov rdx, QWORD PTR Link$1[rbp] + 001e0 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR Block$[rbp] - 001fe e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 001e7 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 487 : ; 488 : Offset += Link->RawDataSize; - 00203 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] - 00207 8b 40 28 mov eax, DWORD PTR [rax+40] - 0020a 8b 4d 24 mov ecx, DWORD PTR Offset$[rbp] - 0020d 03 c8 add ecx, eax - 0020f 8b c1 mov eax, ecx - 00211 89 45 24 mov DWORD PTR Offset$[rbp], eax + 001ec 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 001f0 8b 40 28 mov eax, DWORD PTR [rax+40] + 001f3 8b 4d 24 mov ecx, DWORD PTR Offset$[rbp] + 001f6 03 c8 add ecx, eax + 001f8 8b c1 mov eax, ecx + 001fa 89 45 24 mov DWORD PTR Offset$[rbp], eax ; 489 : } - 00214 e9 39 fe ff ff jmp $LN2@NcDisassem + 001fd e9 39 fe ff ff jmp $LN2@NcDisassem $LN3@NcDisassem: ; 490 : ; 491 : NcCreateLabels(Block); - 00219 48 8b 8d 00 02 + 00202 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR Block$[rbp] - 00220 e8 00 00 00 00 call ?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCreateLabels + 00209 e8 00 00 00 00 call ?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCreateLabels ; 492 : ; 493 : return TRUE; - 00225 b8 01 00 00 00 mov eax, 1 + 0020e b8 01 00 00 00 mov eax, 1 $LN1@NcDisassem: ; 494 : } - 0022a 48 8d a5 e8 01 + 00213 48 8d a5 e8 01 00 00 lea rsp, QWORD PTR [rbp+488] - 00231 5f pop rdi - 00232 5d pop rbp - 00233 c3 ret 0 + 0021a 5f pop rdi + 0021b 5d pop rbp + 0021c c3 ret 0 ?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z ENDP ; NcDisassemble _TEXT ENDS ; COMDAT text$x @@ -10238,7 +10254,7 @@ BufferSize$ = 528 ?dtor$0@?0??NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z@4HA ENDP ; `NcDisassemble'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT T$9 = 8 @@ -10270,147 +10286,147 @@ $LN21: 00008 48 81 ec 30 07 00 00 sub rsp, 1840 ; 00000730H 0000f 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00014 48 8b fc mov rdi, rsp - 00017 b9 cc 01 00 00 mov ecx, 460 ; 000001ccH - 0001c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00021 f3 ab rep stosd - 00023 48 8b 8c 24 58 + 00014 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00019 b9 30 01 00 00 mov ecx, 304 ; 00000130H + 0001e b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00023 f3 ab rep stosd + 00025 48 8b 8c 24 58 07 00 00 mov rcx, QWORD PTR [rsp+1880] - 0002b 48 8b 05 00 00 + 0002d 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00032 48 33 c5 xor rax, rbp - 00035 48 89 85 f8 06 + 00034 48 33 c5 xor rax, rbp + 00037 48 89 85 f8 06 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00043 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 00045 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 386 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next;) - 00048 48 8b 85 20 07 + 0004a 48 8b 85 20 07 00 00 mov rax, QWORD PTR Block$[rbp] - 0004f 48 8b 00 mov rax, QWORD PTR [rax] - 00052 48 89 45 08 mov QWORD PTR T$9[rbp], rax + 00051 48 8b 00 mov rax, QWORD PTR [rax] + 00054 48 89 45 08 mov QWORD PTR T$9[rbp], rax $LN2@NcFixRelJm: - 00056 48 83 7d 08 00 cmp QWORD PTR T$9[rbp], 0 - 0005b 0f 84 1c 03 00 + 00058 48 83 7d 08 00 cmp QWORD PTR T$9[rbp], 0 + 0005d 0f 84 1c 03 00 00 je $LN3@NcFixRelJm - 00061 48 8b 85 20 07 + 00063 48 8b 85 20 07 00 00 mov rax, QWORD PTR Block$[rbp] - 00068 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0006c 48 8b 00 mov rax, QWORD PTR [rax] - 0006f 48 39 45 08 cmp QWORD PTR T$9[rbp], rax - 00073 0f 84 04 03 00 + 0006a 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0006e 48 8b 00 mov rax, QWORD PTR [rax] + 00071 48 39 45 08 cmp QWORD PTR T$9[rbp], rax + 00075 0f 84 04 03 00 00 je $LN3@NcFixRelJm ; 387 : { ; 388 : if (T->Flags & CODE_FLAG_IS_REL_JMP) - 00079 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 0007d 8b 40 18 mov eax, DWORD PTR [rax+24] - 00080 83 e0 02 and eax, 2 - 00083 85 c0 test eax, eax - 00085 0f 84 e2 02 00 + 0007b 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 0007f 8b 40 18 mov eax, DWORD PTR [rax+24] + 00082 83 e0 02 and eax, 2 + 00085 85 c0 test eax, eax + 00087 0f 84 e2 02 00 00 je $LN7@NcFixRelJm ; 389 : { ; 390 : INT32 BranchDisp = 0; - 0008b c7 45 24 00 00 + 0008d c7 45 24 00 00 00 00 mov DWORD PTR BranchDisp$10[rbp], 0 ; 391 : if (!NcGetDeltaToLabel(T, &BranchDisp)) - 00092 48 8d 55 24 lea rdx, QWORD PTR BranchDisp$10[rbp] - 00096 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] - 0009a e8 00 00 00 00 call ?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z ; NcGetDeltaToLabel - 0009f 85 c0 test eax, eax - 000a1 75 07 jne SHORT $LN8@NcFixRelJm + 00094 48 8d 55 24 lea rdx, QWORD PTR BranchDisp$10[rbp] + 00098 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] + 0009c e8 00 00 00 00 call ?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z ; NcGetDeltaToLabel + 000a1 85 c0 test eax, eax + 000a3 75 07 jne SHORT $LN8@NcFixRelJm ; 392 : return FALSE; - 000a3 33 c0 xor eax, eax - 000a5 e9 d8 02 00 00 jmp $LN1@NcFixRelJm + 000a5 33 c0 xor eax, eax + 000a7 e9 d8 02 00 00 jmp $LN1@NcFixRelJm $LN8@NcFixRelJm: ; 393 : ; 394 : ULONG DispWidth = XedDecodedInstGetBranchDisplacementWidthBits(&T->XedInstruction); - 000aa 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 000ae 48 83 c0 30 add rax, 48 ; 00000030H - 000b2 48 8b c8 mov rcx, rax - 000b5 e8 00 00 00 00 call xed_decoded_inst_get_branch_displacement_width_bits - 000ba 89 45 44 mov DWORD PTR DispWidth$11[rbp], eax + 000ac 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 000b0 48 83 c0 30 add rax, 48 ; 00000030H + 000b4 48 8b c8 mov rcx, rax + 000b7 e8 00 00 00 00 call xed_decoded_inst_get_branch_displacement_width_bits + 000bc 89 45 44 mov DWORD PTR DispWidth$11[rbp], eax ; 395 : if (log2(abs(BranchDisp)) + 1 > DispWidth) - 000bd 8b 4d 24 mov ecx, DWORD PTR BranchDisp$10[rbp] - 000c0 e8 00 00 00 00 call abs - 000c5 8b c8 mov ecx, eax - 000c7 e8 00 00 00 00 call ??$log2@H$0A@@@YANH@Z ; log2 - 000cc f2 0f 58 05 00 + 000bf 8b 4d 24 mov ecx, DWORD PTR BranchDisp$10[rbp] + 000c2 e8 00 00 00 00 call abs + 000c7 8b c8 mov ecx, eax + 000c9 e8 00 00 00 00 call ??$log2@H$0A@@@YANH@Z ; log2 + 000ce f2 0f 58 05 00 00 00 00 addsd xmm0, QWORD PTR __real@3ff0000000000000 - 000d4 8b 45 44 mov eax, DWORD PTR DispWidth$11[rbp] - 000d7 f2 48 0f 2a c8 cvtsi2sd xmm1, rax - 000dc 66 0f 2f c1 comisd xmm0, xmm1 - 000e0 0f 86 f3 01 00 + 000d6 8b 45 44 mov eax, DWORD PTR DispWidth$11[rbp] + 000d9 f2 48 0f 2a c8 cvtsi2sd xmm1, rax + 000de 66 0f 2f c1 comisd xmm0, xmm1 + 000e2 0f 86 f3 01 00 00 jbe $LN9@NcFixRelJm ; 396 : { ; 397 : //duh oh ; 398 : if (DispWidth == 32) - 000e6 83 7d 44 20 cmp DWORD PTR DispWidth$11[rbp], 32 ; 00000020H - 000ea 75 07 jne SHORT $LN11@NcFixRelJm + 000e8 83 7d 44 20 cmp DWORD PTR DispWidth$11[rbp], 32 ; 00000020H + 000ec 75 07 jne SHORT $LN11@NcFixRelJm ; 399 : return FALSE; - 000ec 33 c0 xor eax, eax - 000ee e9 8f 02 00 00 jmp $LN1@NcFixRelJm + 000ee 33 c0 xor eax, eax + 000f0 e9 8f 02 00 00 jmp $LN1@NcFixRelJm $LN11@NcFixRelJm: ; 400 : ; 401 : //Grow displacement width to required size ; 402 : DispWidth *= 2; - 000f3 8b 45 44 mov eax, DWORD PTR DispWidth$11[rbp] - 000f6 d1 e0 shl eax, 1 - 000f8 89 45 44 mov DWORD PTR DispWidth$11[rbp], eax + 000f5 8b 45 44 mov eax, DWORD PTR DispWidth$11[rbp] + 000f8 d1 e0 shl eax, 1 + 000fa 89 45 44 mov DWORD PTR DispWidth$11[rbp], eax ; 403 : ; 404 : //Check again ; 405 : if (log2(abs(BranchDisp)) + 1 > DispWidth) - 000fb 8b 4d 24 mov ecx, DWORD PTR BranchDisp$10[rbp] - 000fe e8 00 00 00 00 call abs - 00103 8b c8 mov ecx, eax - 00105 e8 00 00 00 00 call ??$log2@H$0A@@@YANH@Z ; log2 - 0010a f2 0f 58 05 00 + 000fd 8b 4d 24 mov ecx, DWORD PTR BranchDisp$10[rbp] + 00100 e8 00 00 00 00 call abs + 00105 8b c8 mov ecx, eax + 00107 e8 00 00 00 00 call ??$log2@H$0A@@@YANH@Z ; log2 + 0010c f2 0f 58 05 00 00 00 00 addsd xmm0, QWORD PTR __real@3ff0000000000000 - 00112 8b 45 44 mov eax, DWORD PTR DispWidth$11[rbp] - 00115 f2 48 0f 2a c8 cvtsi2sd xmm1, rax - 0011a 66 0f 2f c1 comisd xmm0, xmm1 - 0011e 76 15 jbe SHORT $LN12@NcFixRelJm + 00114 8b 45 44 mov eax, DWORD PTR DispWidth$11[rbp] + 00117 f2 48 0f 2a c8 cvtsi2sd xmm1, rax + 0011c 66 0f 2f c1 comisd xmm0, xmm1 + 00120 76 15 jbe SHORT $LN12@NcFixRelJm ; 406 : { ; 407 : if (DispWidth == 32) - 00120 83 7d 44 20 cmp DWORD PTR DispWidth$11[rbp], 32 ; 00000020H - 00124 75 07 jne SHORT $LN13@NcFixRelJm + 00122 83 7d 44 20 cmp DWORD PTR DispWidth$11[rbp], 32 ; 00000020H + 00126 75 07 jne SHORT $LN13@NcFixRelJm ; 408 : return FALSE; - 00126 33 c0 xor eax, eax - 00128 e9 55 02 00 00 jmp $LN1@NcFixRelJm + 00128 33 c0 xor eax, eax + 0012a e9 55 02 00 00 jmp $LN1@NcFixRelJm $LN13@NcFixRelJm: ; 409 : ; 410 : //Grow once more if not already at 32 ; 411 : DispWidth *= 2; - 0012d 8b 45 44 mov eax, DWORD PTR DispWidth$11[rbp] - 00130 d1 e0 shl eax, 1 - 00132 89 45 44 mov DWORD PTR DispWidth$11[rbp], eax + 0012f 8b 45 44 mov eax, DWORD PTR DispWidth$11[rbp] + 00132 d1 e0 shl eax, 1 + 00134 89 45 44 mov DWORD PTR DispWidth$11[rbp], eax $LN12@NcFixRelJm: ; 412 : } @@ -10419,12 +10435,12 @@ $LN12@NcFixRelJm: ; 415 : XED_STATE MachineState; ; 416 : MachineState.mmode = XED_MACHINE_MODE_LONG_64; - 00135 c7 45 68 01 00 + 00137 c7 45 68 01 00 00 00 mov DWORD PTR MachineState$12[rbp], 1 ; 417 : MachineState.stack_addr_width = XED_ADDRESS_WIDTH_64b; - 0013c c7 45 6c 08 00 + 0013e c7 45 6c 08 00 00 00 mov DWORD PTR MachineState$12[rbp+4], 8 ; 418 : XED_ENCODER_INSTRUCTION EncoderInstruction; @@ -10433,247 +10449,247 @@ $LN12@NcFixRelJm: ; 421 : UINT ReturnedSize; ; 422 : XED_ICLASS_ENUM IClass = XedDecodedInstGetIClass(&T->XedInstruction); - 00143 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 00147 48 83 c0 30 add rax, 48 ; 00000030H - 0014b 48 8b c8 mov rcx, rax - 0014e e8 00 00 00 00 call xed_decoded_inst_get_iclass - 00153 89 85 74 03 00 + 00145 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 00149 48 83 c0 30 add rax, 48 ; 00000030H + 0014d 48 8b c8 mov rcx, rax + 00150 e8 00 00 00 00 call xed_decoded_inst_get_iclass + 00155 89 85 74 03 00 00 mov DWORD PTR IClass$17[rbp], eax ; 423 : ; 424 : //Do the encoding ; 425 : XedInst1(&EncoderInstruction, MachineState, IClass, DispWidth, XedRelBr(0, DispWidth)); - 00159 44 8b 45 44 mov r8d, DWORD PTR DispWidth$11[rbp] - 0015d 33 d2 xor edx, edx - 0015f 48 8d 8d 28 06 + 0015b 44 8b 45 44 mov r8d, DWORD PTR DispWidth$11[rbp] + 0015f 33 d2 xor edx, edx + 00161 48 8d 8d 28 06 00 00 lea rcx, QWORD PTR $T19[rbp] - 00166 e8 00 00 00 00 call xed_relbr - 0016b 48 8d 8d d8 05 + 00168 e8 00 00 00 00 call xed_relbr + 0016d 48 8d 8d d8 05 00 00 lea rcx, QWORD PTR $T18[rbp] - 00172 48 8b f9 mov rdi, rcx - 00175 48 8b f0 mov rsi, rax - 00178 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0017d f3 a4 rep movsb - 0017f 48 8d 85 c0 06 + 00174 48 8b f9 mov rdi, rcx + 00177 48 8b f0 mov rsi, rax + 0017a b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0017f f3 a4 rep movsb + 00181 48 8d 85 c0 06 00 00 lea rax, QWORD PTR $T22[rbp] - 00186 48 8d 8d d8 05 + 00188 48 8d 8d d8 05 00 00 lea rcx, QWORD PTR $T18[rbp] - 0018d 48 8b f8 mov rdi, rax - 00190 48 8b f1 mov rsi, rcx - 00193 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 00198 f3 a4 rep movsb - 0019a 48 8d 85 c0 06 + 0018f 48 8b f8 mov rdi, rax + 00192 48 8b f1 mov rsi, rcx + 00195 b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0019a f3 a4 rep movsb + 0019c 48 8d 85 c0 06 00 00 lea rax, QWORD PTR $T22[rbp] - 001a1 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001a6 44 8b 4d 44 mov r9d, DWORD PTR DispWidth$11[rbp] - 001aa 44 8b 85 74 03 + 001a3 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001a8 44 8b 4d 44 mov r9d, DWORD PTR DispWidth$11[rbp] + 001ac 44 8b 85 74 03 00 00 mov r8d, DWORD PTR IClass$17[rbp] - 001b1 48 8b 55 68 mov rdx, QWORD PTR MachineState$12[rbp] - 001b5 48 8d 8d 90 00 + 001b3 48 8b 55 68 mov rdx, QWORD PTR MachineState$12[rbp] + 001b7 48 8d 8d 90 00 00 00 lea rcx, QWORD PTR EncoderInstruction$13[rbp] - 001bc e8 00 00 00 00 call xed_inst1 + 001be e8 00 00 00 00 call xed_inst1 ; 426 : XedEncoderRequestZeroSetMode(&EncoderRequest, &MachineState); - 001c1 48 8d 55 68 lea rdx, QWORD PTR MachineState$12[rbp] - 001c5 48 8d 8d 50 02 + 001c3 48 8d 55 68 lea rdx, QWORD PTR MachineState$12[rbp] + 001c7 48 8d 8d 50 02 00 00 lea rcx, QWORD PTR EncoderRequest$14[rbp] - 001cc e8 00 00 00 00 call xed_encoder_request_zero_set_mode + 001ce e8 00 00 00 00 call xed_encoder_request_zero_set_mode ; 427 : if (!XedConvertToEncoderRequest(&EncoderRequest, &EncoderInstruction)) - 001d1 48 8d 95 90 00 + 001d3 48 8d 95 90 00 00 00 lea rdx, QWORD PTR EncoderInstruction$13[rbp] - 001d8 48 8d 8d 50 02 + 001da 48 8d 8d 50 02 00 00 lea rcx, QWORD PTR EncoderRequest$14[rbp] - 001df e8 00 00 00 00 call xed_convert_to_encoder_request - 001e4 85 c0 test eax, eax - 001e6 75 07 jne SHORT $LN14@NcFixRelJm + 001e1 e8 00 00 00 00 call xed_convert_to_encoder_request + 001e6 85 c0 test eax, eax + 001e8 75 07 jne SHORT $LN14@NcFixRelJm ; 428 : return FALSE; - 001e8 33 c0 xor eax, eax - 001ea e9 93 01 00 00 jmp $LN1@NcFixRelJm + 001ea 33 c0 xor eax, eax + 001ec e9 93 01 00 00 jmp $LN1@NcFixRelJm $LN14@NcFixRelJm: ; 429 : if (XED_ERROR_NONE != XedEncode(&EncoderRequest, EncodeBuffer, 15, &ReturnedSize)) - 001ef 4c 8d 8d 54 03 + 001f1 4c 8d 8d 54 03 00 00 lea r9, QWORD PTR ReturnedSize$16[rbp] - 001f6 41 b8 0f 00 00 + 001f8 41 b8 0f 00 00 00 mov r8d, 15 - 001fc 48 8d 95 28 03 + 001fe 48 8d 95 28 03 00 00 lea rdx, QWORD PTR EncodeBuffer$15[rbp] - 00203 48 8d 8d 50 02 + 00205 48 8d 8d 50 02 00 00 lea rcx, QWORD PTR EncoderRequest$14[rbp] - 0020a e8 00 00 00 00 call xed_encode - 0020f 85 c0 test eax, eax - 00211 74 07 je SHORT $LN15@NcFixRelJm + 0020c e8 00 00 00 00 call xed_encode + 00211 85 c0 test eax, eax + 00213 74 07 je SHORT $LN15@NcFixRelJm ; 430 : return FALSE; - 00213 33 c0 xor eax, eax - 00215 e9 68 01 00 00 jmp $LN1@NcFixRelJm + 00215 33 c0 xor eax, eax + 00217 e9 68 01 00 00 jmp $LN1@NcFixRelJm $LN15@NcFixRelJm: ; 431 : ; 432 : //fixup T->RawData ; 433 : delete[] T->RawData; - 0021a 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 0021e 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 00222 48 89 85 78 06 + 0021c 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 00220 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 00224 48 89 85 78 06 00 00 mov QWORD PTR $T20[rbp], rax - 00229 48 8b 8d 78 06 + 0022b 48 8b 8d 78 06 00 00 mov rcx, QWORD PTR $T20[rbp] - 00230 e8 00 00 00 00 call ??_V@YAXPEAX@Z ; operator delete[] + 00232 e8 00 00 00 00 call ??_V@YAXPEAX@Z ; operator delete[] ; 434 : T->RawDataSize = ReturnedSize; - 00235 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 00239 8b 8d 54 03 00 + 00237 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 0023b 8b 8d 54 03 00 00 mov ecx, DWORD PTR ReturnedSize$16[rbp] - 0023f 89 48 28 mov DWORD PTR [rax+40], ecx + 00241 89 48 28 mov DWORD PTR [rax+40], ecx ; 435 : T->RawData = new UCHAR[ReturnedSize]; - 00242 8b 85 54 03 00 + 00244 8b 85 54 03 00 00 mov eax, DWORD PTR ReturnedSize$16[rbp] - 00248 8b c8 mov ecx, eax - 0024a e8 00 00 00 00 call ??_U@YAPEAX_K@Z ; operator new[] - 0024f 48 89 85 98 06 + 0024a 8b c8 mov ecx, eax + 0024c e8 00 00 00 00 call ??_U@YAPEAX_K@Z ; operator new[] + 00251 48 89 85 98 06 00 00 mov QWORD PTR $T21[rbp], rax - 00256 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 0025a 48 8b 8d 98 06 + 00258 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 0025c 48 8b 8d 98 06 00 00 mov rcx, QWORD PTR $T21[rbp] - 00261 48 89 48 20 mov QWORD PTR [rax+32], rcx + 00263 48 89 48 20 mov QWORD PTR [rax+32], rcx ; 436 : RtlCopyMemory(T->RawData, EncodeBuffer, ReturnedSize); - 00265 8b 85 54 03 00 + 00267 8b 85 54 03 00 00 mov eax, DWORD PTR ReturnedSize$16[rbp] - 0026b 44 8b c0 mov r8d, eax - 0026e 48 8d 95 28 03 + 0026d 44 8b c0 mov r8d, eax + 00270 48 8d 95 28 03 00 00 lea rdx, QWORD PTR EncodeBuffer$15[rbp] - 00275 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 00279 48 8b 48 20 mov rcx, QWORD PTR [rax+32] - 0027d e8 00 00 00 00 call memcpy + 00277 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 0027b 48 8b 48 20 mov rcx, QWORD PTR [rax+32] + 0027f e8 00 00 00 00 call memcpy ; 437 : ; 438 : //Decode instruction so its proper and all that ; 439 : XedDecodedInstZeroSetMode(&T->XedInstruction, &MachineState); - 00282 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 00286 48 83 c0 30 add rax, 48 ; 00000030H - 0028a 48 8d 55 68 lea rdx, QWORD PTR MachineState$12[rbp] - 0028e 48 8b c8 mov rcx, rax - 00291 e8 00 00 00 00 call xed_decoded_inst_zero_set_mode + 00284 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 00288 48 83 c0 30 add rax, 48 ; 00000030H + 0028c 48 8d 55 68 lea rdx, QWORD PTR MachineState$12[rbp] + 00290 48 8b c8 mov rcx, rax + 00293 e8 00 00 00 00 call xed_decoded_inst_zero_set_mode ; 440 : if (XED_ERROR_NONE != XedDecode(&T->XedInstruction, T->RawData, T->RawDataSize)) - 00296 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 0029a 48 83 c0 30 add rax, 48 ; 00000030H - 0029e 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] - 002a2 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 002a6 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] - 002aa 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 002ae 48 8b c8 mov rcx, rax - 002b1 e8 00 00 00 00 call xed_decode - 002b6 85 c0 test eax, eax - 002b8 74 07 je SHORT $LN16@NcFixRelJm + 00298 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 0029c 48 83 c0 30 add rax, 48 ; 00000030H + 002a0 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] + 002a4 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 002a8 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] + 002ac 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 002b0 48 8b c8 mov rcx, rax + 002b3 e8 00 00 00 00 call xed_decode + 002b8 85 c0 test eax, eax + 002ba 74 07 je SHORT $LN16@NcFixRelJm ; 441 : return FALSE; - 002ba 33 c0 xor eax, eax - 002bc e9 c1 00 00 00 jmp $LN1@NcFixRelJm + 002bc 33 c0 xor eax, eax + 002be e9 c1 00 00 00 jmp $LN1@NcFixRelJm $LN16@NcFixRelJm: ; 442 : ; 443 : //Go back to the start and loop through all labels again because now this instruction is larger :)))) ; 444 : T = Block->Start; - 002c1 48 8b 85 20 07 + 002c3 48 8b 85 20 07 00 00 mov rax, QWORD PTR Block$[rbp] - 002c8 48 8b 00 mov rax, QWORD PTR [rax] - 002cb 48 89 45 08 mov QWORD PTR T$9[rbp], rax + 002ca 48 8b 00 mov rax, QWORD PTR [rax] + 002cd 48 89 45 08 mov QWORD PTR T$9[rbp], rax ; 445 : continue; - 002cf e9 82 fd ff ff jmp $LN2@NcFixRelJm + 002d1 e9 82 fd ff ff jmp $LN2@NcFixRelJm ; 446 : } - 002d4 e9 94 00 00 00 jmp $LN10@NcFixRelJm + 002d6 e9 94 00 00 00 jmp $LN10@NcFixRelJm $LN9@NcFixRelJm: ; 447 : else ; 448 : { ; 449 : DispWidth = XedDecodedInstGetBranchDisplacementWidth(&T->XedInstruction); - 002d9 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 002dd 48 83 c0 30 add rax, 48 ; 00000030H - 002e1 48 8b c8 mov rcx, rax - 002e4 e8 00 00 00 00 call xed_decoded_inst_get_branch_displacement_width - 002e9 89 45 44 mov DWORD PTR DispWidth$11[rbp], eax + 002db 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 002df 48 83 c0 30 add rax, 48 ; 00000030H + 002e3 48 8b c8 mov rcx, rax + 002e6 e8 00 00 00 00 call xed_decoded_inst_get_branch_displacement_width + 002eb 89 45 44 mov DWORD PTR DispWidth$11[rbp], eax ; 450 : switch (DispWidth) - 002ec 8b 45 44 mov eax, DWORD PTR DispWidth$11[rbp] - 002ef 89 85 f4 06 00 + 002ee 8b 45 44 mov eax, DWORD PTR DispWidth$11[rbp] + 002f1 89 85 f4 06 00 00 mov DWORD PTR tv184[rbp], eax - 002f5 83 bd f4 06 00 + 002f7 83 bd f4 06 00 00 01 cmp DWORD PTR tv184[rbp], 1 - 002fc 74 14 je SHORT $LN17@NcFixRelJm - 002fe 83 bd f4 06 00 + 002fe 74 14 je SHORT $LN17@NcFixRelJm + 00300 83 bd f4 06 00 00 02 cmp DWORD PTR tv184[rbp], 2 - 00305 74 2a je SHORT $LN18@NcFixRelJm - 00307 83 bd f4 06 00 + 00307 74 2a je SHORT $LN18@NcFixRelJm + 00309 83 bd f4 06 00 00 04 cmp DWORD PTR tv184[rbp], 4 - 0030e 74 41 je SHORT $LN19@NcFixRelJm - 00310 eb 5b jmp SHORT $LN5@NcFixRelJm + 00310 74 41 je SHORT $LN19@NcFixRelJm + 00312 eb 5b jmp SHORT $LN5@NcFixRelJm $LN17@NcFixRelJm: ; 451 : { ; 452 : case 1: *(PINT8)&T->RawData[T->RawDataSize - DispWidth] = (INT8)BranchDisp; break; - 00312 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 00316 8b 4d 44 mov ecx, DWORD PTR DispWidth$11[rbp] - 00319 8b 40 28 mov eax, DWORD PTR [rax+40] - 0031c 2b c1 sub eax, ecx - 0031e 8b c0 mov eax, eax - 00320 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] - 00324 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00328 0f b6 55 24 movzx edx, BYTE PTR BranchDisp$10[rbp] - 0032c 88 14 01 mov BYTE PTR [rcx+rax], dl - 0032f eb 3c jmp SHORT $LN5@NcFixRelJm + 00314 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 00318 8b 4d 44 mov ecx, DWORD PTR DispWidth$11[rbp] + 0031b 8b 40 28 mov eax, DWORD PTR [rax+40] + 0031e 2b c1 sub eax, ecx + 00320 8b c0 mov eax, eax + 00322 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] + 00326 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 0032a 0f b6 55 24 movzx edx, BYTE PTR BranchDisp$10[rbp] + 0032e 88 14 01 mov BYTE PTR [rcx+rax], dl + 00331 eb 3c jmp SHORT $LN5@NcFixRelJm $LN18@NcFixRelJm: ; 453 : case 2: *(PINT16)&T->RawData[T->RawDataSize - DispWidth] = (INT16)BranchDisp; break; - 00331 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 00335 8b 4d 44 mov ecx, DWORD PTR DispWidth$11[rbp] - 00338 8b 40 28 mov eax, DWORD PTR [rax+40] - 0033b 2b c1 sub eax, ecx - 0033d 8b c0 mov eax, eax - 0033f 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] - 00343 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00347 0f b7 55 24 movzx edx, WORD PTR BranchDisp$10[rbp] - 0034b 66 89 14 01 mov WORD PTR [rcx+rax], dx - 0034f eb 1c jmp SHORT $LN5@NcFixRelJm + 00333 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 00337 8b 4d 44 mov ecx, DWORD PTR DispWidth$11[rbp] + 0033a 8b 40 28 mov eax, DWORD PTR [rax+40] + 0033d 2b c1 sub eax, ecx + 0033f 8b c0 mov eax, eax + 00341 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] + 00345 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00349 0f b7 55 24 movzx edx, WORD PTR BranchDisp$10[rbp] + 0034d 66 89 14 01 mov WORD PTR [rcx+rax], dx + 00351 eb 1c jmp SHORT $LN5@NcFixRelJm $LN19@NcFixRelJm: ; 454 : case 4: *(PINT32)&T->RawData[T->RawDataSize - DispWidth] = (INT32)BranchDisp; break; - 00351 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 00355 8b 4d 44 mov ecx, DWORD PTR DispWidth$11[rbp] - 00358 8b 40 28 mov eax, DWORD PTR [rax+40] - 0035b 2b c1 sub eax, ecx - 0035d 8b c0 mov eax, eax - 0035f 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] - 00363 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00367 8b 55 24 mov edx, DWORD PTR BranchDisp$10[rbp] - 0036a 89 14 01 mov DWORD PTR [rcx+rax], edx + 00353 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 00357 8b 4d 44 mov ecx, DWORD PTR DispWidth$11[rbp] + 0035a 8b 40 28 mov eax, DWORD PTR [rax+40] + 0035d 2b c1 sub eax, ecx + 0035f 8b c0 mov eax, eax + 00361 48 8b 4d 08 mov rcx, QWORD PTR T$9[rbp] + 00365 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00369 8b 55 24 mov edx, DWORD PTR BranchDisp$10[rbp] + 0036c 89 14 01 mov DWORD PTR [rcx+rax], edx $LN5@NcFixRelJm: $LN10@NcFixRelJm: $LN7@NcFixRelJm: @@ -10684,42 +10700,42 @@ $LN7@NcFixRelJm: ; 458 : ; 459 : T = T->Next; - 0036d 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 00371 48 8b 00 mov rax, QWORD PTR [rax] - 00374 48 89 45 08 mov QWORD PTR T$9[rbp], rax + 0036f 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 00373 48 8b 00 mov rax, QWORD PTR [rax] + 00376 48 89 45 08 mov QWORD PTR T$9[rbp], rax ; 460 : } - 00378 e9 d9 fc ff ff jmp $LN2@NcFixRelJm + 0037a e9 d9 fc ff ff jmp $LN2@NcFixRelJm $LN3@NcFixRelJm: ; 461 : return TRUE; - 0037d b8 01 00 00 00 mov eax, 1 + 0037f b8 01 00 00 00 mov eax, 1 $LN1@NcFixRelJm: ; 462 : } - 00382 48 8b f8 mov rdi, rax - 00385 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00389 48 8d 15 00 00 + 00384 48 8b f8 mov rdi, rax + 00387 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 0038b 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData - 00390 e8 00 00 00 00 call _RTC_CheckStackVars - 00395 48 8b c7 mov rax, rdi - 00398 48 8b 8d f8 06 + 00392 e8 00 00 00 00 call _RTC_CheckStackVars + 00397 48 8b c7 mov rax, rdi + 0039a 48 8b 8d f8 06 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0039f 48 33 cd xor rcx, rbp - 003a2 e8 00 00 00 00 call __security_check_cookie - 003a7 48 8d a5 00 07 + 003a1 48 33 cd xor rcx, rbp + 003a4 e8 00 00 00 00 call __security_check_cookie + 003a9 48 8d a5 00 07 00 00 lea rsp, QWORD PTR [rbp+1792] - 003ae 5f pop rdi - 003af 5e pop rsi - 003b0 5d pop rbp - 003b1 c3 ret 0 + 003b0 5f pop rdi + 003b1 5e pop rsi + 003b2 5d pop rbp + 003b3 c3 ret 0 ?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcFixRelJmps _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z _TEXT SEGMENT Delta$ = 4 @@ -10739,182 +10755,176 @@ $LN13: 0000c 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 68 - 01 00 00 mov rcx, QWORD PTR [rsp+360] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 350 : INT32 Delta = 0; - 0003b c7 45 04 00 00 + 00024 c7 45 04 00 00 00 00 mov DWORD PTR Delta$[rbp], 0 ; 351 : //First checking backwards because I feel like thats the direction most jmps are in ; 352 : for (PNATIVE_CODE_LINK T = Link; T; T = T->Prev) - 00042 48 8b 85 40 01 + 0002b 48 8b 85 40 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00049 48 89 45 28 mov QWORD PTR T$1[rbp], rax - 0004d eb 0c jmp SHORT $LN4@NcGetDelta + 00032 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 00036 eb 0c jmp SHORT $LN4@NcGetDelta $LN2@NcGetDelta: - 0004f 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00053 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00057 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 00038 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 0003c 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00040 48 89 45 28 mov QWORD PTR T$1[rbp], rax $LN4@NcGetDelta: - 0005b 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 - 00060 74 4c je SHORT $LN3@NcGetDelta + 00044 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 + 00049 74 4c je SHORT $LN3@NcGetDelta ; 353 : { ; 354 : if (T->Flags & CODE_FLAG_IS_LABEL) - 00062 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00066 8b 40 18 mov eax, DWORD PTR [rax+24] - 00069 83 e0 01 and eax, 1 - 0006c 85 c0 test eax, eax - 0006e 74 2b je SHORT $LN8@NcGetDelta + 0004b 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 0004f 8b 40 18 mov eax, DWORD PTR [rax+24] + 00052 83 e0 01 and eax, 1 + 00055 85 c0 test eax, eax + 00057 74 2b je SHORT $LN8@NcGetDelta ; 355 : { ; 356 : if (T->Label == Link->Label) - 00070 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00074 48 8b 8d 40 01 + 00059 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 0005d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 0007b 8b 49 1c mov ecx, DWORD PTR [rcx+28] - 0007e 39 48 1c cmp DWORD PTR [rax+28], ecx - 00081 75 16 jne SHORT $LN9@NcGetDelta + 00064 8b 49 1c mov ecx, DWORD PTR [rcx+28] + 00067 39 48 1c cmp DWORD PTR [rax+28], ecx + 0006a 75 16 jne SHORT $LN9@NcGetDelta ; 357 : { ; 358 : *DeltaOut = Delta; - 00083 48 8b 85 48 01 + 0006c 48 8b 85 48 01 00 00 mov rax, QWORD PTR DeltaOut$[rbp] - 0008a 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] - 0008d 89 08 mov DWORD PTR [rax], ecx + 00073 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] + 00076 89 08 mov DWORD PTR [rax], ecx ; 359 : return TRUE; - 0008f b8 01 00 00 00 mov eax, 1 - 00094 e9 89 00 00 00 jmp $LN1@NcGetDelta + 00078 b8 01 00 00 00 mov eax, 1 + 0007d e9 89 00 00 00 jmp $LN1@NcGetDelta $LN9@NcGetDelta: ; 360 : } ; 361 : continue; - 00099 eb b4 jmp SHORT $LN2@NcGetDelta + 00082 eb b4 jmp SHORT $LN2@NcGetDelta $LN8@NcGetDelta: ; 362 : } ; 363 : Delta -= T->RawDataSize; - 0009b 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 0009f 8b 40 28 mov eax, DWORD PTR [rax+40] - 000a2 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] - 000a5 2b c8 sub ecx, eax - 000a7 8b c1 mov eax, ecx - 000a9 89 45 04 mov DWORD PTR Delta$[rbp], eax + 00084 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00088 8b 40 28 mov eax, DWORD PTR [rax+40] + 0008b 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] + 0008e 2b c8 sub ecx, eax + 00090 8b c1 mov eax, ecx + 00092 89 45 04 mov DWORD PTR Delta$[rbp], eax ; 364 : } - 000ac eb a1 jmp SHORT $LN2@NcGetDelta + 00095 eb a1 jmp SHORT $LN2@NcGetDelta $LN3@NcGetDelta: ; 365 : ; 366 : //Now check forwards ; 367 : Delta = 0; - 000ae c7 45 04 00 00 + 00097 c7 45 04 00 00 00 00 mov DWORD PTR Delta$[rbp], 0 ; 368 : for (PNATIVE_CODE_LINK T = Link->Next; T; T = T->Next) - 000b5 48 8b 85 40 01 + 0009e 48 8b 85 40 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000bc 48 8b 00 mov rax, QWORD PTR [rax] - 000bf 48 89 45 48 mov QWORD PTR T$2[rbp], rax - 000c3 eb 0b jmp SHORT $LN7@NcGetDelta + 000a5 48 8b 00 mov rax, QWORD PTR [rax] + 000a8 48 89 45 48 mov QWORD PTR T$2[rbp], rax + 000ac eb 0b jmp SHORT $LN7@NcGetDelta $LN5@NcGetDelta: - 000c5 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] - 000c9 48 8b 00 mov rax, QWORD PTR [rax] - 000cc 48 89 45 48 mov QWORD PTR T$2[rbp], rax + 000ae 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] + 000b2 48 8b 00 mov rax, QWORD PTR [rax] + 000b5 48 89 45 48 mov QWORD PTR T$2[rbp], rax $LN7@NcGetDelta: - 000d0 48 83 7d 48 00 cmp QWORD PTR T$2[rbp], 0 - 000d5 74 49 je SHORT $LN6@NcGetDelta + 000b9 48 83 7d 48 00 cmp QWORD PTR T$2[rbp], 0 + 000be 74 49 je SHORT $LN6@NcGetDelta ; 369 : { ; 370 : if (T->Flags & CODE_FLAG_IS_LABEL) - 000d7 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] - 000db 8b 40 18 mov eax, DWORD PTR [rax+24] - 000de 83 e0 01 and eax, 1 - 000e1 85 c0 test eax, eax - 000e3 74 28 je SHORT $LN10@NcGetDelta + 000c0 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] + 000c4 8b 40 18 mov eax, DWORD PTR [rax+24] + 000c7 83 e0 01 and eax, 1 + 000ca 85 c0 test eax, eax + 000cc 74 28 je SHORT $LN10@NcGetDelta ; 371 : { ; 372 : if (T->Label == Link->Label) - 000e5 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] - 000e9 48 8b 8d 40 01 + 000ce 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] + 000d2 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 000f0 8b 49 1c mov ecx, DWORD PTR [rcx+28] - 000f3 39 48 1c cmp DWORD PTR [rax+28], ecx - 000f6 75 13 jne SHORT $LN11@NcGetDelta + 000d9 8b 49 1c mov ecx, DWORD PTR [rcx+28] + 000dc 39 48 1c cmp DWORD PTR [rax+28], ecx + 000df 75 13 jne SHORT $LN11@NcGetDelta ; 373 : { ; 374 : *DeltaOut = Delta; - 000f8 48 8b 85 48 01 + 000e1 48 8b 85 48 01 00 00 mov rax, QWORD PTR DeltaOut$[rbp] - 000ff 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] - 00102 89 08 mov DWORD PTR [rax], ecx + 000e8 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] + 000eb 89 08 mov DWORD PTR [rax], ecx ; 375 : return TRUE; - 00104 b8 01 00 00 00 mov eax, 1 - 00109 eb 17 jmp SHORT $LN1@NcGetDelta + 000ed b8 01 00 00 00 mov eax, 1 + 000f2 eb 17 jmp SHORT $LN1@NcGetDelta $LN11@NcGetDelta: ; 376 : } ; 377 : continue; - 0010b eb b8 jmp SHORT $LN5@NcGetDelta + 000f4 eb b8 jmp SHORT $LN5@NcGetDelta $LN10@NcGetDelta: ; 378 : } ; 379 : Delta += T->RawDataSize; - 0010d 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] - 00111 8b 40 28 mov eax, DWORD PTR [rax+40] - 00114 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] - 00117 03 c8 add ecx, eax - 00119 8b c1 mov eax, ecx - 0011b 89 45 04 mov DWORD PTR Delta$[rbp], eax + 000f6 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] + 000fa 8b 40 28 mov eax, DWORD PTR [rax+40] + 000fd 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] + 00100 03 c8 add ecx, eax + 00102 8b c1 mov eax, ecx + 00104 89 45 04 mov DWORD PTR Delta$[rbp], eax ; 380 : } - 0011e eb a5 jmp SHORT $LN5@NcGetDelta + 00107 eb a5 jmp SHORT $LN5@NcGetDelta $LN6@NcGetDelta: ; 381 : return FALSE; - 00120 33 c0 xor eax, eax + 00109 33 c0 xor eax, eax $LN1@NcGetDelta: ; 382 : } - 00122 48 8d a5 28 01 + 0010b 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 00129 5f pop rdi - 0012a 5d pop rbp - 0012b c3 ret 0 + 00112 5f pop rdi + 00113 5d pop rbp + 00114 c3 ret 0 ?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z ENDP ; NcGetDeltaToLabel _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z _TEXT SEGMENT Block$ = 224 @@ -10931,39 +10941,33 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 345 : return NcDeepCopyPartialBlock(Block->Start, Block->End, BlockCopy); - 0003b 4c 8b 85 e8 00 + 00024 4c 8b 85 e8 00 00 00 mov r8, QWORD PTR BlockCopy$[rbp] - 00042 48 8b 85 e0 00 + 0002b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 00049 48 8b 50 08 mov rdx, QWORD PTR [rax+8] - 0004d 48 8b 85 e0 00 + 00032 48 8b 50 08 mov rdx, QWORD PTR [rax+8] + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 00054 48 8b 08 mov rcx, QWORD PTR [rax] - 00057 e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeepCopyPartialBlock + 0003d 48 8b 08 mov rcx, QWORD PTR [rax] + 00040 e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeepCopyPartialBlock ; 346 : } - 0005c 48 8d a5 c8 00 + 00045 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00063 5f pop rdi - 00064 5d pop rbp - 00065 c3 ret 0 + 0004c 5f pop rdi + 0004d 5d pop rbp + 0004e c3 ret 0 ?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z ENDP ; NcDeepCopyBlock _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT $L0$4 = 8 @@ -10990,206 +10994,206 @@ $LN12: 00011 48 81 ec b8 01 00 00 sub rsp, 440 ; 000001b8H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 6e 00 00 00 mov ecx, 110 ; 0000006eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 d8 + 0001d 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00022 b9 36 00 00 00 mov ecx, 54 ; 00000036H + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 d8 01 00 00 mov rcx, QWORD PTR [rsp+472] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 80 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 80 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 320 : if (!Start || !End || !Start->Block || Start->Block != End->Block || !Block) - 00051 48 83 bd b0 01 + 00053 48 83 bd b0 01 00 00 00 cmp QWORD PTR Start$[rbp], 0 - 00059 74 3a je SHORT $LN9@NcDeepCopy - 0005b 48 83 bd b8 01 + 0005b 74 3a je SHORT $LN9@NcDeepCopy + 0005d 48 83 bd b8 01 00 00 00 cmp QWORD PTR End$[rbp], 0 - 00063 74 30 je SHORT $LN9@NcDeepCopy - 00065 48 8b 85 b0 01 + 00065 74 30 je SHORT $LN9@NcDeepCopy + 00067 48 8b 85 b0 01 00 00 mov rax, QWORD PTR Start$[rbp] - 0006c 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 - 00071 74 22 je SHORT $LN9@NcDeepCopy - 00073 48 8b 85 b0 01 + 0006e 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 + 00073 74 22 je SHORT $LN9@NcDeepCopy + 00075 48 8b 85 b0 01 00 00 mov rax, QWORD PTR Start$[rbp] - 0007a 48 8b 8d b8 01 + 0007c 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR End$[rbp] - 00081 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] - 00085 48 39 48 10 cmp QWORD PTR [rax+16], rcx - 00089 75 0a jne SHORT $LN9@NcDeepCopy - 0008b 48 83 bd c0 01 + 00083 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 00087 48 39 48 10 cmp QWORD PTR [rax+16], rcx + 0008b 75 0a jne SHORT $LN9@NcDeepCopy + 0008d 48 83 bd c0 01 00 00 00 cmp QWORD PTR Block$[rbp], 0 - 00093 75 07 jne SHORT $LN8@NcDeepCopy + 00095 75 07 jne SHORT $LN8@NcDeepCopy $LN9@NcDeepCopy: ; 321 : return FALSE; - 00095 33 c0 xor eax, eax - 00097 e9 27 01 00 00 jmp $LN1@NcDeepCopy + 00097 33 c0 xor eax, eax + 00099 e9 27 01 00 00 jmp $LN1@NcDeepCopy $LN8@NcDeepCopy: ; 322 : ; 323 : Block->LabelIds.clear(); - 0009c 48 8b 85 c0 01 + 0009e 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Block$[rbp] - 000a3 48 83 c0 10 add rax, 16 - 000a7 48 8b c8 mov rcx, rax - 000aa e8 00 00 00 00 call ?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ ; std::vector >::clear + 000a5 48 83 c0 10 add rax, 16 + 000a9 48 8b c8 mov rcx, rax + 000ac e8 00 00 00 00 call ?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ ; std::vector >::clear ; 324 : Block->Start = Block->End = NULL; - 000af 48 8b 85 c0 01 + 000b1 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Block$[rbp] - 000b6 48 c7 40 08 00 + 000b8 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 000be 48 8b 85 c0 01 + 000c0 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Block$[rbp] - 000c5 48 c7 00 00 00 + 000c7 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 ; 325 : ; 326 : for (ULONG L : Start->Block->LabelIds) - 000cc 48 8b 85 b0 01 + 000ce 48 8b 85 b0 01 00 00 mov rax, QWORD PTR Start$[rbp] - 000d3 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 000d7 48 83 c0 10 add rax, 16 - 000db 48 89 45 08 mov QWORD PTR $L0$4[rbp], rax - 000df 48 8b 4d 08 mov rcx, QWORD PTR $L0$4[rbp] - 000e3 e8 00 00 00 00 call ?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ; std::vector >::_Unchecked_begin - 000e8 48 89 45 28 mov QWORD PTR $L0$5[rbp], rax - 000ec 48 8b 4d 08 mov rcx, QWORD PTR $L0$4[rbp] - 000f0 e8 00 00 00 00 call ?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ; std::vector >::_Unchecked_end - 000f5 48 89 45 48 mov QWORD PTR $L0$6[rbp], rax - 000f9 eb 0c jmp SHORT $LN4@NcDeepCopy + 000d5 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 000d9 48 83 c0 10 add rax, 16 + 000dd 48 89 45 08 mov QWORD PTR $L0$4[rbp], rax + 000e1 48 8b 4d 08 mov rcx, QWORD PTR $L0$4[rbp] + 000e5 e8 00 00 00 00 call ?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ; std::vector >::_Unchecked_begin + 000ea 48 89 45 28 mov QWORD PTR $L0$5[rbp], rax + 000ee 48 8b 4d 08 mov rcx, QWORD PTR $L0$4[rbp] + 000f2 e8 00 00 00 00 call ?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ; std::vector >::_Unchecked_end + 000f7 48 89 45 48 mov QWORD PTR $L0$6[rbp], rax + 000fb eb 0c jmp SHORT $LN4@NcDeepCopy $LN2@NcDeepCopy: - 000fb 48 8b 45 28 mov rax, QWORD PTR $L0$5[rbp] - 000ff 48 83 c0 04 add rax, 4 - 00103 48 89 45 28 mov QWORD PTR $L0$5[rbp], rax + 000fd 48 8b 45 28 mov rax, QWORD PTR $L0$5[rbp] + 00101 48 83 c0 04 add rax, 4 + 00105 48 89 45 28 mov QWORD PTR $L0$5[rbp], rax $LN4@NcDeepCopy: - 00107 48 8b 45 48 mov rax, QWORD PTR $L0$6[rbp] - 0010b 48 39 45 28 cmp QWORD PTR $L0$5[rbp], rax - 0010f 74 2d je SHORT $LN3@NcDeepCopy - 00111 48 8b 45 28 mov rax, QWORD PTR $L0$5[rbp] - 00115 8b 00 mov eax, DWORD PTR [rax] - 00117 89 45 64 mov DWORD PTR L$7[rbp], eax + 00109 48 8b 45 48 mov rax, QWORD PTR $L0$6[rbp] + 0010d 48 39 45 28 cmp QWORD PTR $L0$5[rbp], rax + 00111 74 2d je SHORT $LN3@NcDeepCopy + 00113 48 8b 45 28 mov rax, QWORD PTR $L0$5[rbp] + 00117 8b 00 mov eax, DWORD PTR [rax] + 00119 89 45 64 mov DWORD PTR L$7[rbp], eax ; 327 : Block->LabelIds.push_back(L); - 0011a 48 8b 85 c0 01 + 0011c 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00121 48 83 c0 10 add rax, 16 - 00125 48 89 85 78 01 + 00123 48 83 c0 10 add rax, 16 + 00127 48 89 85 78 01 00 00 mov QWORD PTR tv88[rbp], rax - 0012c 48 8d 55 64 lea rdx, QWORD PTR L$7[rbp] - 00130 48 8b 8d 78 01 + 0012e 48 8d 55 64 lea rdx, QWORD PTR L$7[rbp] + 00132 48 8b 8d 78 01 00 00 mov rcx, QWORD PTR tv88[rbp] - 00137 e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back - 0013c eb bd jmp SHORT $LN2@NcDeepCopy + 00139 e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back + 0013e eb bd jmp SHORT $LN2@NcDeepCopy $LN3@NcDeepCopy: ; 328 : ; 329 : for (PNATIVE_CODE_LINK CurLink = Start; CurLink && CurLink != End->Next; CurLink = CurLink->Next) - 0013e 48 8b 85 b0 01 + 00140 48 8b 85 b0 01 00 00 mov rax, QWORD PTR Start$[rbp] - 00145 48 89 85 88 00 + 00147 48 89 85 88 00 00 00 mov QWORD PTR CurLink$8[rbp], rax - 0014c eb 11 jmp SHORT $LN7@NcDeepCopy + 0014e eb 11 jmp SHORT $LN7@NcDeepCopy $LN5@NcDeepCopy: - 0014e 48 8b 85 88 00 + 00150 48 8b 85 88 00 00 00 mov rax, QWORD PTR CurLink$8[rbp] - 00155 48 8b 00 mov rax, QWORD PTR [rax] - 00158 48 89 85 88 00 + 00157 48 8b 00 mov rax, QWORD PTR [rax] + 0015a 48 89 85 88 00 00 00 mov QWORD PTR CurLink$8[rbp], rax $LN7@NcDeepCopy: - 0015f 48 83 bd 88 00 + 00161 48 83 bd 88 00 00 00 00 cmp QWORD PTR CurLink$8[rbp], 0 - 00167 74 55 je SHORT $LN6@NcDeepCopy - 00169 48 8b 85 b8 01 + 00169 74 55 je SHORT $LN6@NcDeepCopy + 0016b 48 8b 85 b8 01 00 00 mov rax, QWORD PTR End$[rbp] - 00170 48 8b 00 mov rax, QWORD PTR [rax] - 00173 48 39 85 88 00 + 00172 48 8b 00 mov rax, QWORD PTR [rax] + 00175 48 39 85 88 00 00 00 cmp QWORD PTR CurLink$8[rbp], rax - 0017a 74 42 je SHORT $LN6@NcDeepCopy + 0017c 74 42 je SHORT $LN6@NcDeepCopy ; 330 : { ; 331 : PNATIVE_CODE_LINK Temp = NcDeepCopyLink(CurLink); - 0017c 48 8b 8d 88 00 + 0017e 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR CurLink$8[rbp] - 00183 e8 00 00 00 00 call ?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z ; NcDeepCopyLink - 00188 48 89 85 a8 00 + 00185 e8 00 00 00 00 call ?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z ; NcDeepCopyLink + 0018a 48 89 85 a8 00 00 00 mov QWORD PTR Temp$9[rbp], rax ; 332 : if (!Temp) - 0018f 48 83 bd a8 00 + 00191 48 83 bd a8 00 00 00 00 cmp QWORD PTR Temp$9[rbp], 0 - 00197 75 10 jne SHORT $LN10@NcDeepCopy + 00199 75 10 jne SHORT $LN10@NcDeepCopy ; 333 : { ; 334 : NcDeleteBlock(Block); - 00199 48 8b 8d c0 01 + 0019b 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 001a0 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 001a2 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock ; 335 : return FALSE; - 001a5 33 c0 xor eax, eax - 001a7 eb 1a jmp SHORT $LN1@NcDeepCopy + 001a7 33 c0 xor eax, eax + 001a9 eb 1a jmp SHORT $LN1@NcDeepCopy $LN10@NcDeepCopy: ; 336 : } ; 337 : NcAppendToBlock(Block, Temp); - 001a9 48 8b 95 a8 00 + 001ab 48 8b 95 a8 00 00 00 mov rdx, QWORD PTR Temp$9[rbp] - 001b0 48 8b 8d c0 01 + 001b2 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 001b7 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 001b9 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 338 : } - 001bc eb 90 jmp SHORT $LN5@NcDeepCopy + 001be eb 90 jmp SHORT $LN5@NcDeepCopy $LN6@NcDeepCopy: ; 339 : ; 340 : return TRUE; - 001be b8 01 00 00 00 mov eax, 1 + 001c0 b8 01 00 00 00 mov eax, 1 $LN1@NcDeepCopy: ; 341 : } - 001c3 48 8b f8 mov rdi, rax - 001c6 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 001ca 48 8d 15 00 00 + 001c5 48 8b f8 mov rdi, rax + 001c8 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 001cc 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData - 001d1 e8 00 00 00 00 call _RTC_CheckStackVars - 001d6 48 8b c7 mov rax, rdi - 001d9 48 8b 8d 80 01 + 001d3 e8 00 00 00 00 call _RTC_CheckStackVars + 001d8 48 8b c7 mov rax, rdi + 001db 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 001e0 48 33 cd xor rcx, rbp - 001e3 e8 00 00 00 00 call __security_check_cookie - 001e8 48 8d a5 98 01 + 001e2 48 33 cd xor rcx, rbp + 001e5 e8 00 00 00 00 call __security_check_cookie + 001ea 48 8d a5 98 01 00 00 lea rsp, QWORD PTR [rbp+408] - 001ef 5f pop rdi - 001f0 5d pop rbp - 001f1 c3 ret 0 + 001f1 5f pop rdi + 001f2 5d pop rbp + 001f3 c3 ret 0 ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcDeepCopyPartialBlock _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z _TEXT SEGMENT NewLink$1 = 8 @@ -11216,192 +11220,186 @@ $LN14: 00007 48 81 ec d8 01 00 00 sub rsp, 472 ; 000001d8H 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8b fc mov rdi, rsp - 00016 b9 76 00 00 00 mov ecx, 118 ; 00000076H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 f8 - 01 00 00 mov rcx, QWORD PTR [rsp+504] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 299 : if (Link->Flags & CODE_FLAG_IS_LABEL) - 00036 48 8b 85 c0 01 + 0001f 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Link$[rbp] - 0003d 8b 40 18 mov eax, DWORD PTR [rax+24] - 00040 83 e0 01 and eax, 1 - 00043 85 c0 test eax, eax - 00045 74 67 je SHORT $LN2@NcDeepCopy + 00026 8b 40 18 mov eax, DWORD PTR [rax+24] + 00029 83 e0 01 and eax, 1 + 0002c 85 c0 test eax, eax + 0002e 74 67 je SHORT $LN2@NcDeepCopy ; 300 : { ; 301 : return new NATIVE_CODE_LINK(Link->Label, NULL); - 00047 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0004c e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00051 48 89 85 28 01 + 00030 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00035 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0003a 48 89 85 28 01 00 00 mov QWORD PTR $T4[rbp], rax - 00058 48 83 bd 28 01 + 00041 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T4[rbp], 0 - 00060 74 22 je SHORT $LN6@NcDeepCopy - 00062 45 33 c0 xor r8d, r8d - 00065 48 8b 85 c0 01 + 00049 74 22 je SHORT $LN6@NcDeepCopy + 0004b 45 33 c0 xor r8d, r8d + 0004e 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Link$[rbp] - 0006c 8b 50 1c mov edx, DWORD PTR [rax+28] - 0006f 48 8b 8d 28 01 + 00055 8b 50 1c mov edx, DWORD PTR [rax+28] + 00058 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T4[rbp] - 00076 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 0007b 48 89 85 98 01 + 0005f e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00064 48 89 85 98 01 00 00 mov QWORD PTR tv81[rbp], rax - 00082 eb 0b jmp SHORT $LN7@NcDeepCopy + 0006b eb 0b jmp SHORT $LN7@NcDeepCopy $LN6@NcDeepCopy: - 00084 48 c7 85 98 01 + 0006d 48 c7 85 98 01 00 00 00 00 00 00 mov QWORD PTR tv81[rbp], 0 $LN7@NcDeepCopy: - 0008f 48 8b 85 98 01 + 00078 48 8b 85 98 01 00 00 mov rax, QWORD PTR tv81[rbp] - 00096 48 89 85 08 01 + 0007f 48 89 85 08 01 00 00 mov QWORD PTR $T3[rbp], rax - 0009d 48 8b 85 08 01 + 00086 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T3[rbp] - 000a4 e9 3c 01 00 00 jmp $LN1@NcDeepCopy + 0008d e9 3c 01 00 00 jmp $LN1@NcDeepCopy ; 302 : } - 000a9 e9 37 01 00 00 jmp $LN1@NcDeepCopy + 00092 e9 37 01 00 00 jmp $LN1@NcDeepCopy $LN2@NcDeepCopy: ; 303 : else ; 304 : { ; 305 : PNATIVE_CODE_LINK NewLink = new NATIVE_CODE_LINK(Link->Flags, Link->RawData, Link->RawDataSize); - 000ae b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 000b3 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 000b8 48 89 85 68 01 + 00097 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0009c e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 000a1 48 89 85 68 01 00 00 mov QWORD PTR $T6[rbp], rax - 000bf 48 83 bd 68 01 + 000a8 48 83 bd 68 01 00 00 00 cmp QWORD PTR $T6[rbp], 0 - 000c7 74 3d je SHORT $LN8@NcDeepCopy - 000c9 c7 44 24 20 00 + 000b0 74 3d je SHORT $LN8@NcDeepCopy + 000b2 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 000d1 48 8b 85 c0 01 + 000ba 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000d8 44 8b 48 28 mov r9d, DWORD PTR [rax+40] - 000dc 48 8b 85 c0 01 + 000c1 44 8b 48 28 mov r9d, DWORD PTR [rax+40] + 000c5 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000e3 4c 8b 40 20 mov r8, QWORD PTR [rax+32] - 000e7 48 8b 85 c0 01 + 000cc 4c 8b 40 20 mov r8, QWORD PTR [rax+32] + 000d0 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000ee 8b 50 18 mov edx, DWORD PTR [rax+24] - 000f1 48 8b 8d 68 01 + 000d7 8b 50 18 mov edx, DWORD PTR [rax+24] + 000da 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR $T6[rbp] - 000f8 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000fd 48 89 85 98 01 + 000e1 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000e6 48 89 85 98 01 00 00 mov QWORD PTR tv131[rbp], rax - 00104 eb 0b jmp SHORT $LN9@NcDeepCopy + 000ed eb 0b jmp SHORT $LN9@NcDeepCopy $LN8@NcDeepCopy: - 00106 48 c7 85 98 01 + 000ef 48 c7 85 98 01 00 00 00 00 00 00 mov QWORD PTR tv131[rbp], 0 $LN9@NcDeepCopy: - 00111 48 8b 85 98 01 + 000fa 48 8b 85 98 01 00 00 mov rax, QWORD PTR tv131[rbp] - 00118 48 89 85 48 01 + 00101 48 89 85 48 01 00 00 mov QWORD PTR $T5[rbp], rax - 0011f 48 8b 85 48 01 + 00108 48 8b 85 48 01 00 00 mov rax, QWORD PTR $T5[rbp] - 00126 48 89 45 08 mov QWORD PTR NewLink$1[rbp], rax + 0010f 48 89 45 08 mov QWORD PTR NewLink$1[rbp], rax ; 306 : NewLink->Label = Link->Label; - 0012a 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] - 0012e 48 8b 8d c0 01 + 00113 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] + 00117 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 00135 8b 49 1c mov ecx, DWORD PTR [rcx+28] - 00138 89 48 1c mov DWORD PTR [rax+28], ecx + 0011e 8b 49 1c mov ecx, DWORD PTR [rcx+28] + 00121 89 48 1c mov DWORD PTR [rax+28], ecx ; 307 : XED_ERROR_ENUM DecodeError = XedDecode(&NewLink->XedInstruction, Link->RawData, Link->RawDataSize); - 0013b 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] - 0013f 48 83 c0 30 add rax, 48 ; 00000030H - 00143 48 8b 8d c0 01 + 00124 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] + 00128 48 83 c0 30 add rax, 48 ; 00000030H + 0012c 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 0014a 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 0014e 48 8b 8d c0 01 + 00133 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00137 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 00155 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 00159 48 8b c8 mov rcx, rax - 0015c e8 00 00 00 00 call xed_decode - 00161 89 45 24 mov DWORD PTR DecodeError$2[rbp], eax + 0013e 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00142 48 8b c8 mov rcx, rax + 00145 e8 00 00 00 00 call xed_decode + 0014a 89 45 24 mov DWORD PTR DecodeError$2[rbp], eax ; 308 : if (DecodeError != XED_ERROR_NONE) - 00164 83 7d 24 00 cmp DWORD PTR DecodeError$2[rbp], 0 - 00168 74 77 je SHORT $LN4@NcDeepCopy + 0014d 83 7d 24 00 cmp DWORD PTR DecodeError$2[rbp], 0 + 00151 74 77 je SHORT $LN4@NcDeepCopy ; 309 : { ; 310 : printf("XedDecode failed in NcDeepCopyLink: %s %u\n", XedErrorEnumToString(DecodeError), Link->RawDataSize); - 0016a 48 8b 85 c0 01 + 00153 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00171 8b 40 28 mov eax, DWORD PTR [rax+40] - 00174 89 85 94 01 00 + 0015a 8b 40 28 mov eax, DWORD PTR [rax+40] + 0015d 89 85 94 01 00 00 mov DWORD PTR tv151[rbp], eax - 0017a 8b 4d 24 mov ecx, DWORD PTR DecodeError$2[rbp] - 0017d e8 00 00 00 00 call xed_error_enum_t2str - 00182 48 89 85 98 01 + 00163 8b 4d 24 mov ecx, DWORD PTR DecodeError$2[rbp] + 00166 e8 00 00 00 00 call xed_error_enum_t2str + 0016b 48 89 85 98 01 00 00 mov QWORD PTR tv149[rbp], rax - 00189 44 8b 85 94 01 + 00172 44 8b 85 94 01 00 00 mov r8d, DWORD PTR tv151[rbp] - 00190 48 8b 95 98 01 + 00179 48 8b 95 98 01 00 00 mov rdx, QWORD PTR tv149[rbp] - 00197 48 8d 0d 00 00 + 00180 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0CL@COPJALEP@XedDecode?5failed?5in?5NcDeepCopyL@ - 0019e e8 00 00 00 00 call printf + 00187 e8 00 00 00 00 call printf ; 311 : delete NewLink; - 001a3 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] - 001a7 48 89 85 88 01 + 0018c 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] + 00190 48 89 85 88 01 00 00 mov QWORD PTR $T7[rbp], rax - 001ae 48 83 bd 88 01 + 00197 48 83 bd 88 01 00 00 00 cmp QWORD PTR $T7[rbp], 0 - 001b6 74 1a je SHORT $LN10@NcDeepCopy - 001b8 ba 01 00 00 00 mov edx, 1 - 001bd 48 8b 8d 88 01 + 0019f 74 1a je SHORT $LN10@NcDeepCopy + 001a1 ba 01 00 00 00 mov edx, 1 + 001a6 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR $T7[rbp] - 001c4 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 001c9 48 89 85 98 01 + 001ad e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 001b2 48 89 85 98 01 00 00 mov QWORD PTR tv155[rbp], rax - 001d0 eb 0b jmp SHORT $LN11@NcDeepCopy + 001b9 eb 0b jmp SHORT $LN11@NcDeepCopy $LN10@NcDeepCopy: - 001d2 48 c7 85 98 01 + 001bb 48 c7 85 98 01 00 00 00 00 00 00 mov QWORD PTR tv155[rbp], 0 $LN11@NcDeepCopy: ; 312 : return NULL; - 001dd 33 c0 xor eax, eax - 001df eb 04 jmp SHORT $LN1@NcDeepCopy + 001c6 33 c0 xor eax, eax + 001c8 eb 04 jmp SHORT $LN1@NcDeepCopy $LN4@NcDeepCopy: ; 313 : } ; 314 : return NewLink; - 001e1 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] + 001ca 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] $LN1@NcDeepCopy: ; 315 : } ; 316 : } - 001e5 48 8d a5 a8 01 + 001ce 48 8d a5 a8 01 00 00 lea rsp, QWORD PTR [rbp+424] - 001ec 5f pop rdi - 001ed 5d pop rbp - 001ee c3 ret 0 + 001d5 5f pop rdi + 001d6 5d pop rbp + 001d7 c3 ret 0 ?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z ENDP ; NcDeepCopyLink _TEXT ENDS ; COMDAT text$x @@ -11535,7 +11533,7 @@ Link$ = 448 ?dtor$1@?0??NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z@4HA ENDP ; `NcDeepCopyLink'::`1'::dtor$1 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z _TEXT SEGMENT T$ = 8 @@ -11553,253 +11551,247 @@ $LN23: 0000b 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00017 48 8b fc mov rdi, rsp - 0001a b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00017 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 259 : PNATIVE_CODE_LINK T; ; 260 : if (Delta > 0) - 0003a 83 bd 08 01 00 + 00023 83 bd 08 01 00 00 00 cmp DWORD PTR Delta$[rbp], 0 - 00041 0f 8e a2 00 00 + 0002a 0f 8e a2 00 00 00 jle $LN10@NcValidate ; 261 : { ; 262 : T = Jmp->Next; - 00047 48 8b 85 00 01 + 00030 48 8b 85 00 01 00 00 mov rax, QWORD PTR Jmp$[rbp] - 0004e 48 8b 00 mov rax, QWORD PTR [rax] - 00051 48 89 45 08 mov QWORD PTR T$[rbp], rax + 00037 48 8b 00 mov rax, QWORD PTR [rax] + 0003a 48 89 45 08 mov QWORD PTR T$[rbp], rax $LN21@NcValidate: $LN2@NcValidate: ; 263 : while (Delta > 0 && T) - 00055 83 bd 08 01 00 + 0003e 83 bd 08 01 00 00 00 cmp DWORD PTR Delta$[rbp], 0 - 0005c 7e 44 jle SHORT $LN3@NcValidate - 0005e 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 - 00063 74 3d je SHORT $LN3@NcValidate + 00045 7e 44 jle SHORT $LN3@NcValidate + 00047 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 + 0004c 74 3d je SHORT $LN3@NcValidate ; 264 : { ; 265 : if (T->Flags & CODE_FLAG_IS_LABEL) - 00065 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 00069 8b 40 18 mov eax, DWORD PTR [rax+24] - 0006c 83 e0 01 and eax, 1 - 0006f 85 c0 test eax, eax - 00071 74 02 je SHORT $LN12@NcValidate + 0004e 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00052 8b 40 18 mov eax, DWORD PTR [rax+24] + 00055 83 e0 01 and eax, 1 + 00058 85 c0 test eax, eax + 0005a 74 02 je SHORT $LN12@NcValidate ; 266 : continue; - 00073 eb e0 jmp SHORT $LN2@NcValidate + 0005c eb e0 jmp SHORT $LN2@NcValidate $LN12@NcValidate: ; 267 : Delta -= XedDecodedInstGetLength(&T->XedInstruction); - 00075 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 00079 48 83 c0 30 add rax, 48 ; 00000030H - 0007d 48 8b c8 mov rcx, rax - 00080 e8 00 00 00 00 call xed_decoded_inst_get_length - 00085 8b 8d 08 01 00 + 0005e 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00062 48 83 c0 30 add rax, 48 ; 00000030H + 00066 48 8b c8 mov rcx, rax + 00069 e8 00 00 00 00 call xed_decoded_inst_get_length + 0006e 8b 8d 08 01 00 00 mov ecx, DWORD PTR Delta$[rbp] - 0008b 2b c8 sub ecx, eax - 0008d 8b c1 mov eax, ecx - 0008f 89 85 08 01 00 + 00074 2b c8 sub ecx, eax + 00076 8b c1 mov eax, ecx + 00078 89 85 08 01 00 00 mov DWORD PTR Delta$[rbp], eax ; 268 : T = T->Next; - 00095 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 00099 48 8b 00 mov rax, QWORD PTR [rax] - 0009c 48 89 45 08 mov QWORD PTR T$[rbp], rax + 0007e 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00082 48 8b 00 mov rax, QWORD PTR [rax] + 00085 48 89 45 08 mov QWORD PTR T$[rbp], rax ; 269 : } - 000a0 eb b3 jmp SHORT $LN21@NcValidate + 00089 eb b3 jmp SHORT $LN21@NcValidate $LN3@NcValidate: ; 270 : if (Delta != 0 || !T) - 000a2 83 bd 08 01 00 + 0008b 83 bd 08 01 00 00 00 cmp DWORD PTR Delta$[rbp], 0 - 000a9 75 07 jne SHORT $LN14@NcValidate - 000ab 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 - 000b0 75 07 jne SHORT $LN13@NcValidate + 00092 75 07 jne SHORT $LN14@NcValidate + 00094 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 + 00099 75 07 jne SHORT $LN13@NcValidate $LN14@NcValidate: ; 271 : return NULL; - 000b2 33 c0 xor eax, eax - 000b4 e9 db 00 00 00 jmp $LN1@NcValidate + 0009b 33 c0 xor eax, eax + 0009d e9 db 00 00 00 jmp $LN1@NcValidate $LN13@NcValidate: $LN4@NcValidate: ; 272 : while (T && (T->Flags & CODE_FLAG_IS_LABEL)) - 000b9 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 - 000be 74 1b je SHORT $LN5@NcValidate - 000c0 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 000c4 8b 40 18 mov eax, DWORD PTR [rax+24] - 000c7 83 e0 01 and eax, 1 - 000ca 85 c0 test eax, eax - 000cc 74 0d je SHORT $LN5@NcValidate + 000a2 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 + 000a7 74 1b je SHORT $LN5@NcValidate + 000a9 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 000ad 8b 40 18 mov eax, DWORD PTR [rax+24] + 000b0 83 e0 01 and eax, 1 + 000b3 85 c0 test eax, eax + 000b5 74 0d je SHORT $LN5@NcValidate ; 273 : T = T->Next; - 000ce 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 000d2 48 8b 00 mov rax, QWORD PTR [rax] - 000d5 48 89 45 08 mov QWORD PTR T$[rbp], rax - 000d9 eb de jmp SHORT $LN4@NcValidate + 000b7 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 000bb 48 8b 00 mov rax, QWORD PTR [rax] + 000be 48 89 45 08 mov QWORD PTR T$[rbp], rax + 000c2 eb de jmp SHORT $LN4@NcValidate $LN5@NcValidate: ; 274 : return T; - 000db 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 000df e9 b0 00 00 00 jmp $LN1@NcValidate + 000c4 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 000c8 e9 b0 00 00 00 jmp $LN1@NcValidate ; 275 : } - 000e4 e9 a4 00 00 00 jmp $LN11@NcValidate + 000cd e9 a4 00 00 00 jmp $LN11@NcValidate $LN10@NcValidate: ; 276 : else if (Delta < 0) - 000e9 83 bd 08 01 00 + 000d2 83 bd 08 01 00 00 00 cmp DWORD PTR Delta$[rbp], 0 - 000f0 0f 8d 97 00 00 + 000d9 0f 8d 97 00 00 00 jge $LN15@NcValidate ; 277 : { ; 278 : T = Jmp; - 000f6 48 8b 85 00 01 + 000df 48 8b 85 00 01 00 00 mov rax, QWORD PTR Jmp$[rbp] - 000fd 48 89 45 08 mov QWORD PTR T$[rbp], rax + 000e6 48 89 45 08 mov QWORD PTR T$[rbp], rax $LN22@NcValidate: $LN6@NcValidate: ; 279 : while (T) - 00101 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 - 00106 74 49 je SHORT $LN7@NcValidate + 000ea 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 + 000ef 74 49 je SHORT $LN7@NcValidate ; 280 : { ; 281 : if (T->Flags & CODE_FLAG_IS_LABEL) - 00108 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 0010c 8b 40 18 mov eax, DWORD PTR [rax+24] - 0010f 83 e0 01 and eax, 1 - 00112 85 c0 test eax, eax - 00114 74 02 je SHORT $LN16@NcValidate + 000f1 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 000f5 8b 40 18 mov eax, DWORD PTR [rax+24] + 000f8 83 e0 01 and eax, 1 + 000fb 85 c0 test eax, eax + 000fd 74 02 je SHORT $LN16@NcValidate ; 282 : continue; - 00116 eb e9 jmp SHORT $LN6@NcValidate + 000ff eb e9 jmp SHORT $LN6@NcValidate $LN16@NcValidate: ; 283 : Delta += XedDecodedInstGetLength(&T->XedInstruction); - 00118 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 0011c 48 83 c0 30 add rax, 48 ; 00000030H - 00120 48 8b c8 mov rcx, rax - 00123 e8 00 00 00 00 call xed_decoded_inst_get_length - 00128 8b 8d 08 01 00 + 00101 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00105 48 83 c0 30 add rax, 48 ; 00000030H + 00109 48 8b c8 mov rcx, rax + 0010c e8 00 00 00 00 call xed_decoded_inst_get_length + 00111 8b 8d 08 01 00 00 mov ecx, DWORD PTR Delta$[rbp] - 0012e 03 c8 add ecx, eax - 00130 8b c1 mov eax, ecx - 00132 89 85 08 01 00 + 00117 03 c8 add ecx, eax + 00119 8b c1 mov eax, ecx + 0011b 89 85 08 01 00 00 mov DWORD PTR Delta$[rbp], eax ; 284 : if (Delta >= 0) - 00138 83 bd 08 01 00 + 00121 83 bd 08 01 00 00 00 cmp DWORD PTR Delta$[rbp], 0 - 0013f 7c 02 jl SHORT $LN17@NcValidate + 00128 7c 02 jl SHORT $LN17@NcValidate ; 285 : break; - 00141 eb 0e jmp SHORT $LN7@NcValidate + 0012a eb 0e jmp SHORT $LN7@NcValidate $LN17@NcValidate: ; 286 : T = T->Prev; - 00143 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 00147 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0014b 48 89 45 08 mov QWORD PTR T$[rbp], rax + 0012c 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00130 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00134 48 89 45 08 mov QWORD PTR T$[rbp], rax ; 287 : } - 0014f eb b0 jmp SHORT $LN22@NcValidate + 00138 eb b0 jmp SHORT $LN22@NcValidate $LN7@NcValidate: ; 288 : if (Delta != 0 || !T) - 00151 83 bd 08 01 00 + 0013a 83 bd 08 01 00 00 00 cmp DWORD PTR Delta$[rbp], 0 - 00158 75 07 jne SHORT $LN19@NcValidate - 0015a 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 - 0015f 75 04 jne SHORT $LN18@NcValidate + 00141 75 07 jne SHORT $LN19@NcValidate + 00143 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 + 00148 75 04 jne SHORT $LN18@NcValidate $LN19@NcValidate: ; 289 : return NULL; - 00161 33 c0 xor eax, eax - 00163 eb 2f jmp SHORT $LN1@NcValidate + 0014a 33 c0 xor eax, eax + 0014c eb 2f jmp SHORT $LN1@NcValidate $LN18@NcValidate: $LN8@NcValidate: ; 290 : while (T && (T->Flags & CODE_FLAG_IS_LABEL)) - 00165 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 - 0016a 74 1b je SHORT $LN9@NcValidate - 0016c 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 00170 8b 40 18 mov eax, DWORD PTR [rax+24] - 00173 83 e0 01 and eax, 1 - 00176 85 c0 test eax, eax - 00178 74 0d je SHORT $LN9@NcValidate + 0014e 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 + 00153 74 1b je SHORT $LN9@NcValidate + 00155 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00159 8b 40 18 mov eax, DWORD PTR [rax+24] + 0015c 83 e0 01 and eax, 1 + 0015f 85 c0 test eax, eax + 00161 74 0d je SHORT $LN9@NcValidate ; 291 : T = T->Next; - 0017a 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 0017e 48 8b 00 mov rax, QWORD PTR [rax] - 00181 48 89 45 08 mov QWORD PTR T$[rbp], rax - 00185 eb de jmp SHORT $LN8@NcValidate + 00163 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00167 48 8b 00 mov rax, QWORD PTR [rax] + 0016a 48 89 45 08 mov QWORD PTR T$[rbp], rax + 0016e eb de jmp SHORT $LN8@NcValidate $LN9@NcValidate: ; 292 : return T; - 00187 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 0018b eb 07 jmp SHORT $LN1@NcValidate + 00170 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 00174 eb 07 jmp SHORT $LN1@NcValidate $LN15@NcValidate: $LN11@NcValidate: ; 293 : } ; 294 : return Jmp; - 0018d 48 8b 85 00 01 + 00176 48 8b 85 00 01 00 00 mov rax, QWORD PTR Jmp$[rbp] $LN1@NcValidate: ; 295 : } - 00194 48 8d a5 e8 00 + 0017d 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0019b 5f pop rdi - 0019c 5d pop rbp - 0019d c3 ret 0 + 00184 5f pop rdi + 00185 5d pop rbp + 00186 c3 ret 0 ?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z ENDP ; NcValidateJmp _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT CurrentLabelId$ = 4 @@ -11828,331 +11820,331 @@ $LN18: 00007 48 81 ec 58 02 00 00 sub rsp, 600 ; 00000258H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 96 00 00 00 mov ecx, 150 ; 00000096H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 78 + 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00018 b9 5e 00 00 00 mov ecx, 94 ; 0000005eH + 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00022 f3 ab rep stosd + 00024 48 8b 8c 24 78 02 00 00 mov rcx, QWORD PTR [rsp+632] - 0002a 48 8b 05 00 00 + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 20 02 + 00033 48 33 c5 xor rax, rbp + 00036 48 89 85 20 02 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 207 : ULONG CurrentLabelId = 0; - 00047 c7 45 04 00 00 + 00049 c7 45 04 00 00 00 00 mov DWORD PTR CurrentLabelId$[rbp], 0 ; 208 : for (PNATIVE_CODE_LINK T = Block->Start; T; T = T->Next) - 0004e 48 8b 85 50 02 + 00050 48 8b 85 50 02 00 00 mov rax, QWORD PTR Block$[rbp] - 00055 48 8b 00 mov rax, QWORD PTR [rax] - 00058 48 89 45 28 mov QWORD PTR T$4[rbp], rax - 0005c eb 0b jmp SHORT $LN4@NcCreateLa + 00057 48 8b 00 mov rax, QWORD PTR [rax] + 0005a 48 89 45 28 mov QWORD PTR T$4[rbp], rax + 0005e eb 0b jmp SHORT $LN4@NcCreateLa $LN2@NcCreateLa: - 0005e 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 00062 48 8b 00 mov rax, QWORD PTR [rax] - 00065 48 89 45 28 mov QWORD PTR T$4[rbp], rax + 00060 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 00064 48 8b 00 mov rax, QWORD PTR [rax] + 00067 48 89 45 28 mov QWORD PTR T$4[rbp], rax $LN4@NcCreateLa: - 00069 48 83 7d 28 00 cmp QWORD PTR T$4[rbp], 0 - 0006e 0f 84 07 02 00 + 0006b 48 83 7d 28 00 cmp QWORD PTR T$4[rbp], 0 + 00070 0f 84 07 02 00 00 je $LN3@NcCreateLa ; 209 : { ; 210 : if (!(T->Flags & CODE_FLAG_IS_INST)) - 00074 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 00078 8b 40 18 mov eax, DWORD PTR [rax+24] - 0007b 83 e0 04 and eax, 4 - 0007e 85 c0 test eax, eax - 00080 75 02 jne SHORT $LN5@NcCreateLa + 00076 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 0007a 8b 40 18 mov eax, DWORD PTR [rax+24] + 0007d 83 e0 04 and eax, 4 + 00080 85 c0 test eax, eax + 00082 75 02 jne SHORT $LN5@NcCreateLa ; 211 : continue; - 00082 eb da jmp SHORT $LN2@NcCreateLa + 00084 eb da jmp SHORT $LN2@NcCreateLa $LN5@NcCreateLa: ; 212 : ; 213 : XED_CATEGORY_ENUM Category = XedDecodedInstGetCategory(&T->XedInstruction); - 00084 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 00088 48 83 c0 30 add rax, 48 ; 00000030H - 0008c 48 8b c8 mov rcx, rax - 0008f e8 00 00 00 00 call xed_decoded_inst_get_category - 00094 89 45 44 mov DWORD PTR Category$5[rbp], eax + 00086 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 0008a 48 83 c0 30 add rax, 48 ; 00000030H + 0008e 48 8b c8 mov rcx, rax + 00091 e8 00 00 00 00 call xed_decoded_inst_get_category + 00096 89 45 44 mov DWORD PTR Category$5[rbp], eax ; 214 : if (Category != XED_CATEGORY_COND_BR && Category != XED_CATEGORY_UNCOND_BR) - 00097 83 7d 44 1c cmp DWORD PTR Category$5[rbp], 28 - 0009b 74 08 je SHORT $LN6@NcCreateLa - 0009d 83 7d 44 5b cmp DWORD PTR Category$5[rbp], 91 ; 0000005bH - 000a1 74 02 je SHORT $LN6@NcCreateLa + 00099 83 7d 44 1c cmp DWORD PTR Category$5[rbp], 28 + 0009d 74 08 je SHORT $LN6@NcCreateLa + 0009f 83 7d 44 5b cmp DWORD PTR Category$5[rbp], 91 ; 0000005bH + 000a3 74 02 je SHORT $LN6@NcCreateLa ; 215 : continue; - 000a3 eb b9 jmp SHORT $LN2@NcCreateLa + 000a5 eb b9 jmp SHORT $LN2@NcCreateLa $LN6@NcCreateLa: ; 216 : ; 217 : ULONG OperandCount = XedDecodedInstNumOperands(&T->XedInstruction); - 000a5 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 000a9 48 83 c0 30 add rax, 48 ; 00000030H - 000ad 48 8b c8 mov rcx, rax - 000b0 e8 00 00 00 00 call xed_decoded_inst_noperands - 000b5 89 45 64 mov DWORD PTR OperandCount$6[rbp], eax + 000a7 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 000ab 48 83 c0 30 add rax, 48 ; 00000030H + 000af 48 8b c8 mov rcx, rax + 000b2 e8 00 00 00 00 call xed_decoded_inst_noperands + 000b7 89 45 64 mov DWORD PTR OperandCount$6[rbp], eax ; 218 : if (OperandCount < 1) - 000b8 83 7d 64 01 cmp DWORD PTR OperandCount$6[rbp], 1 - 000bc 73 02 jae SHORT $LN7@NcCreateLa + 000ba 83 7d 64 01 cmp DWORD PTR OperandCount$6[rbp], 1 + 000be 73 02 jae SHORT $LN7@NcCreateLa ; 219 : continue; - 000be eb 9e jmp SHORT $LN2@NcCreateLa + 000c0 eb 9e jmp SHORT $LN2@NcCreateLa $LN7@NcCreateLa: ; 220 : ; 221 : CONST XED_INST* Inst = XedDecodedInstInst(&T->XedInstruction); - 000c0 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 000c4 48 83 c0 30 add rax, 48 ; 00000030H - 000c8 48 8b c8 mov rcx, rax - 000cb e8 00 00 00 00 call xed_decoded_inst_inst - 000d0 48 89 85 88 00 + 000c2 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 000c6 48 83 c0 30 add rax, 48 ; 00000030H + 000ca 48 8b c8 mov rcx, rax + 000cd e8 00 00 00 00 call xed_decoded_inst_inst + 000d2 48 89 85 88 00 00 00 mov QWORD PTR Inst$7[rbp], rax ; 222 : if (!Inst) - 000d7 48 83 bd 88 00 + 000d9 48 83 bd 88 00 00 00 00 cmp QWORD PTR Inst$7[rbp], 0 - 000df 75 05 jne SHORT $LN8@NcCreateLa + 000e1 75 05 jne SHORT $LN8@NcCreateLa ; 223 : continue; - 000e1 e9 78 ff ff ff jmp $LN2@NcCreateLa + 000e3 e9 78 ff ff ff jmp $LN2@NcCreateLa $LN8@NcCreateLa: ; 224 : ; 225 : CONST XED_OPERAND* Operand = XedInstOperand(Inst, 0); - 000e6 33 d2 xor edx, edx - 000e8 48 8b 8d 88 00 + 000e8 33 d2 xor edx, edx + 000ea 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR Inst$7[rbp] - 000ef e8 00 00 00 00 call xed_inst_operand - 000f4 48 89 85 a8 00 + 000f1 e8 00 00 00 00 call xed_inst_operand + 000f6 48 89 85 a8 00 00 00 mov QWORD PTR Operand$8[rbp], rax ; 226 : if (!Operand) - 000fb 48 83 bd a8 00 + 000fd 48 83 bd a8 00 00 00 00 cmp QWORD PTR Operand$8[rbp], 0 - 00103 75 05 jne SHORT $LN9@NcCreateLa + 00105 75 05 jne SHORT $LN9@NcCreateLa ; 227 : continue; - 00105 e9 54 ff ff ff jmp $LN2@NcCreateLa + 00107 e9 54 ff ff ff jmp $LN2@NcCreateLa $LN9@NcCreateLa: ; 228 : ; 229 : XED_OPERAND_TYPE_ENUM OperandType = XedOperandType(Operand); - 0010a 48 8b 8d a8 00 + 0010c 48 8b 8d a8 00 00 00 mov rcx, QWORD PTR Operand$8[rbp] - 00111 e8 00 00 00 00 call xed_operand_type - 00116 89 85 c4 00 00 + 00113 e8 00 00 00 00 call xed_operand_type + 00118 89 85 c4 00 00 00 mov DWORD PTR OperandType$9[rbp], eax ; 230 : if (OperandType != XED_OPERAND_TYPE_IMM && OperandType != XED_OPERAND_TYPE_IMM_CONST) - 0011c 83 bd c4 00 00 + 0011e 83 bd c4 00 00 00 02 cmp DWORD PTR OperandType$9[rbp], 2 - 00123 74 0e je SHORT $LN10@NcCreateLa - 00125 83 bd c4 00 00 + 00125 74 0e je SHORT $LN10@NcCreateLa + 00127 83 bd c4 00 00 00 03 cmp DWORD PTR OperandType$9[rbp], 3 - 0012c 74 05 je SHORT $LN10@NcCreateLa + 0012e 74 05 je SHORT $LN10@NcCreateLa ; 231 : continue; - 0012e e9 2b ff ff ff jmp $LN2@NcCreateLa + 00130 e9 2b ff ff ff jmp $LN2@NcCreateLa $LN10@NcCreateLa: ; 232 : ; 233 : INT32 BranchDisplacement = XedDecodedInstGetBranchDisplacement(&T->XedInstruction); - 00133 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 00137 48 83 c0 30 add rax, 48 ; 00000030H - 0013b 48 8b c8 mov rcx, rax - 0013e e8 00 00 00 00 call xed_decoded_inst_get_branch_displacement - 00143 89 85 e4 00 00 + 00135 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 00139 48 83 c0 30 add rax, 48 ; 00000030H + 0013d 48 8b c8 mov rcx, rax + 00140 e8 00 00 00 00 call xed_decoded_inst_get_branch_displacement + 00145 89 85 e4 00 00 00 mov DWORD PTR BranchDisplacement$10[rbp], eax ; 234 : PNATIVE_CODE_LINK JmpPos = NcValidateJmp(T, BranchDisplacement); - 00149 8b 95 e4 00 00 + 0014b 8b 95 e4 00 00 00 mov edx, DWORD PTR BranchDisplacement$10[rbp] - 0014f 48 8b 4d 28 mov rcx, QWORD PTR T$4[rbp] - 00153 e8 00 00 00 00 call ?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z ; NcValidateJmp - 00158 48 89 85 08 01 + 00151 48 8b 4d 28 mov rcx, QWORD PTR T$4[rbp] + 00155 e8 00 00 00 00 call ?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z ; NcValidateJmp + 0015a 48 89 85 08 01 00 00 mov QWORD PTR JmpPos$11[rbp], rax ; 235 : if (!JmpPos) - 0015f 48 83 bd 08 01 + 00161 48 83 bd 08 01 00 00 00 cmp QWORD PTR JmpPos$11[rbp], 0 - 00167 75 25 jne SHORT $LN11@NcCreateLa + 00169 75 25 jne SHORT $LN11@NcCreateLa ; 236 : { ; 237 : printf("Failed to validate jump. Type: %s, Displacement: %d\n", XedCategoryEnumToString(Category), BranchDisplacement); - 00169 8b 4d 44 mov ecx, DWORD PTR Category$5[rbp] - 0016c e8 00 00 00 00 call xed_category_enum_t2str - 00171 44 8b 85 e4 00 + 0016b 8b 4d 44 mov ecx, DWORD PTR Category$5[rbp] + 0016e e8 00 00 00 00 call xed_category_enum_t2str + 00173 44 8b 85 e4 00 00 00 mov r8d, DWORD PTR BranchDisplacement$10[rbp] - 00178 48 8b d0 mov rdx, rax - 0017b 48 8d 0d 00 00 + 0017a 48 8b d0 mov rdx, rax + 0017d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0DF@KKBEBOEB@Failed?5to?5validate?5jump?4?5Type?3?5@ - 00182 e8 00 00 00 00 call printf + 00184 e8 00 00 00 00 call printf ; 238 : return FALSE; - 00187 33 c0 xor eax, eax - 00189 e9 f2 00 00 00 jmp $LN1@NcCreateLa + 00189 33 c0 xor eax, eax + 0018b e9 f2 00 00 00 jmp $LN1@NcCreateLa $LN11@NcCreateLa: ; 239 : } ; 240 : ; 241 : if (JmpPos->Prev && (JmpPos->Prev->Flags & CODE_FLAG_IS_LABEL)) - 0018e 48 8b 85 08 01 + 00190 48 8b 85 08 01 00 00 mov rax, QWORD PTR JmpPos$11[rbp] - 00195 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 0019a 74 2f je SHORT $LN12@NcCreateLa - 0019c 48 8b 85 08 01 + 00197 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 0019c 74 2f je SHORT $LN12@NcCreateLa + 0019e 48 8b 85 08 01 00 00 mov rax, QWORD PTR JmpPos$11[rbp] - 001a3 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 001a7 8b 40 18 mov eax, DWORD PTR [rax+24] - 001aa 83 e0 01 and eax, 1 - 001ad 85 c0 test eax, eax - 001af 74 1a je SHORT $LN12@NcCreateLa + 001a5 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 001a9 8b 40 18 mov eax, DWORD PTR [rax+24] + 001ac 83 e0 01 and eax, 1 + 001af 85 c0 test eax, eax + 001b1 74 1a je SHORT $LN12@NcCreateLa ; 242 : { ; 243 : T->Label = JmpPos->Prev->Label; - 001b1 48 8b 85 08 01 + 001b3 48 8b 85 08 01 00 00 mov rax, QWORD PTR JmpPos$11[rbp] - 001b8 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 001bc 48 8b 4d 28 mov rcx, QWORD PTR T$4[rbp] - 001c0 8b 40 1c mov eax, DWORD PTR [rax+28] - 001c3 89 41 1c mov DWORD PTR [rcx+28], eax + 001ba 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 001be 48 8b 4d 28 mov rcx, QWORD PTR T$4[rbp] + 001c2 8b 40 1c mov eax, DWORD PTR [rax+28] + 001c5 89 41 1c mov DWORD PTR [rcx+28], eax ; 244 : } - 001c6 e9 9a 00 00 00 jmp $LN13@NcCreateLa + 001c8 e9 9a 00 00 00 jmp $LN13@NcCreateLa $LN12@NcCreateLa: ; 245 : else ; 246 : { ; 247 : NcInsertLinkBefore(JmpPos, new NATIVE_CODE_LINK(CurrentLabelId, Block)); - 001cb b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 001d0 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 001d5 48 89 85 08 02 + 001cd b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 001d2 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 001d7 48 89 85 08 02 00 00 mov QWORD PTR $T13[rbp], rax - 001dc 48 83 bd 08 02 + 001de 48 83 bd 08 02 00 00 00 cmp QWORD PTR $T13[rbp], 0 - 001e4 74 1f je SHORT $LN15@NcCreateLa - 001e6 4c 8b 85 50 02 + 001e6 74 1f je SHORT $LN15@NcCreateLa + 001e8 4c 8b 85 50 02 00 00 mov r8, QWORD PTR Block$[rbp] - 001ed 8b 55 04 mov edx, DWORD PTR CurrentLabelId$[rbp] - 001f0 48 8b 8d 08 02 + 001ef 8b 55 04 mov edx, DWORD PTR CurrentLabelId$[rbp] + 001f2 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR $T13[rbp] - 001f7 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 001fc 48 89 85 18 02 + 001f9 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 001fe 48 89 85 18 02 00 00 mov QWORD PTR tv157[rbp], rax - 00203 eb 0b jmp SHORT $LN16@NcCreateLa + 00205 eb 0b jmp SHORT $LN16@NcCreateLa $LN15@NcCreateLa: - 00205 48 c7 85 18 02 + 00207 48 c7 85 18 02 00 00 00 00 00 00 mov QWORD PTR tv157[rbp], 0 $LN16@NcCreateLa: - 00210 48 8b 85 18 02 + 00212 48 8b 85 18 02 00 00 mov rax, QWORD PTR tv157[rbp] - 00217 48 89 85 e8 01 + 00219 48 89 85 e8 01 00 00 mov QWORD PTR $T12[rbp], rax - 0021e 48 8b 95 e8 01 + 00220 48 8b 95 e8 01 00 00 mov rdx, QWORD PTR $T12[rbp] - 00225 48 8b 8d 08 01 + 00227 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR JmpPos$11[rbp] - 0022c e8 00 00 00 00 call ?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z ; NcInsertLinkBefore + 0022e e8 00 00 00 00 call ?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z ; NcInsertLinkBefore ; 248 : Block->LabelIds.push_back(CurrentLabelId); - 00231 48 8b 85 50 02 + 00233 48 8b 85 50 02 00 00 mov rax, QWORD PTR Block$[rbp] - 00238 48 83 c0 10 add rax, 16 - 0023c 48 89 85 18 02 + 0023a 48 83 c0 10 add rax, 16 + 0023e 48 89 85 18 02 00 00 mov QWORD PTR tv163[rbp], rax - 00243 48 8d 55 04 lea rdx, QWORD PTR CurrentLabelId$[rbp] - 00247 48 8b 8d 18 02 + 00245 48 8d 55 04 lea rdx, QWORD PTR CurrentLabelId$[rbp] + 00249 48 8b 8d 18 02 00 00 mov rcx, QWORD PTR tv163[rbp] - 0024e e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back + 00250 e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back ; 249 : T->Label = CurrentLabelId; - 00253 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 00257 8b 4d 04 mov ecx, DWORD PTR CurrentLabelId$[rbp] - 0025a 89 48 1c mov DWORD PTR [rax+28], ecx + 00255 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 00259 8b 4d 04 mov ecx, DWORD PTR CurrentLabelId$[rbp] + 0025c 89 48 1c mov DWORD PTR [rax+28], ecx ; 250 : ++CurrentLabelId; - 0025d 8b 45 04 mov eax, DWORD PTR CurrentLabelId$[rbp] - 00260 ff c0 inc eax - 00262 89 45 04 mov DWORD PTR CurrentLabelId$[rbp], eax + 0025f 8b 45 04 mov eax, DWORD PTR CurrentLabelId$[rbp] + 00262 ff c0 inc eax + 00264 89 45 04 mov DWORD PTR CurrentLabelId$[rbp], eax $LN13@NcCreateLa: ; 251 : } ; 252 : T->Flags |= CODE_FLAG_IS_REL_JMP; - 00265 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 00269 8b 40 18 mov eax, DWORD PTR [rax+24] - 0026c 83 c8 02 or eax, 2 - 0026f 48 8b 4d 28 mov rcx, QWORD PTR T$4[rbp] - 00273 89 41 18 mov DWORD PTR [rcx+24], eax + 00267 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] + 0026b 8b 40 18 mov eax, DWORD PTR [rax+24] + 0026e 83 c8 02 or eax, 2 + 00271 48 8b 4d 28 mov rcx, QWORD PTR T$4[rbp] + 00275 89 41 18 mov DWORD PTR [rcx+24], eax ; 253 : } - 00276 e9 e3 fd ff ff jmp $LN2@NcCreateLa + 00278 e9 e3 fd ff ff jmp $LN2@NcCreateLa $LN3@NcCreateLa: ; 254 : return TRUE; - 0027b b8 01 00 00 00 mov eax, 1 + 0027d b8 01 00 00 00 mov eax, 1 $LN1@NcCreateLa: ; 255 : } - 00280 48 8b f8 mov rdi, rax - 00283 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00287 48 8d 15 00 00 + 00282 48 8b f8 mov rdi, rax + 00285 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00289 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData - 0028e e8 00 00 00 00 call _RTC_CheckStackVars - 00293 48 8b c7 mov rax, rdi - 00296 48 8b 8d 20 02 + 00290 e8 00 00 00 00 call _RTC_CheckStackVars + 00295 48 8b c7 mov rax, rdi + 00298 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0029d 48 33 cd xor rcx, rbp - 002a0 e8 00 00 00 00 call __security_check_cookie - 002a5 48 8d a5 38 02 + 0029f 48 33 cd xor rcx, rbp + 002a2 e8 00 00 00 00 call __security_check_cookie + 002a7 48 8d a5 38 02 00 00 lea rsp, QWORD PTR [rbp+568] - 002ac 5f pop rdi - 002ad 5d pop rbp - 002ae c3 ret 0 + 002ae 5f pop rdi + 002af 5d pop rbp + 002b0 c3 ret 0 ?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcCreateLabels _TEXT ENDS ; COMDAT text$x @@ -12225,7 +12217,7 @@ Block$ = 592 ?dtor$0@?0??NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `NcCreateLabels'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z _TEXT SEGMENT T$1 = 8 @@ -12245,172 +12237,166 @@ $LN10: 00011 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 187 : if (!Link || !Link->Block || !Block || !Block->Start || !Block->End) - 00040 48 83 bd 00 01 + 00029 48 83 bd 00 01 00 00 00 cmp QWORD PTR Link$[rbp], 0 - 00048 74 33 je SHORT $LN6@NcInsertBl - 0004a 48 8b 85 00 01 + 00031 74 33 je SHORT $LN6@NcInsertBl + 00033 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00051 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 - 00056 74 25 je SHORT $LN6@NcInsertBl - 00058 48 83 bd 08 01 + 0003a 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 + 0003f 74 25 je SHORT $LN6@NcInsertBl + 00041 48 83 bd 08 01 00 00 00 cmp QWORD PTR Block$[rbp], 0 - 00060 74 1b je SHORT $LN6@NcInsertBl - 00062 48 8b 85 08 01 + 00049 74 1b je SHORT $LN6@NcInsertBl + 0004b 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00069 48 83 38 00 cmp QWORD PTR [rax], 0 - 0006d 74 0e je SHORT $LN6@NcInsertBl - 0006f 48 8b 85 08 01 + 00052 48 83 38 00 cmp QWORD PTR [rax], 0 + 00056 74 0e je SHORT $LN6@NcInsertBl + 00058 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00076 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 0007b 75 07 jne SHORT $LN5@NcInsertBl + 0005f 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00064 75 07 jne SHORT $LN5@NcInsertBl $LN6@NcInsertBl: ; 188 : return FALSE; - 0007d 33 c0 xor eax, eax - 0007f e9 0e 01 00 00 jmp $LN1@NcInsertBl + 00066 33 c0 xor eax, eax + 00068 e9 0e 01 00 00 jmp $LN1@NcInsertBl $LN5@NcInsertBl: ; 189 : ; 190 : if (FixLabels && Block->LabelIds.size() && Link->Block->LabelIds.size()) - 00084 83 bd 10 01 00 + 0006d 83 bd 10 01 00 00 00 cmp DWORD PTR FixLabels$[rbp], 0 - 0008b 74 4b je SHORT $LN7@NcInsertBl - 0008d 48 8b 85 08 01 + 00074 74 4b je SHORT $LN7@NcInsertBl + 00076 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00094 48 83 c0 10 add rax, 16 - 00098 48 8b c8 mov rcx, rax - 0009b e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size - 000a0 48 85 c0 test rax, rax - 000a3 74 33 je SHORT $LN7@NcInsertBl - 000a5 48 8b 85 00 01 + 0007d 48 83 c0 10 add rax, 16 + 00081 48 8b c8 mov rcx, rax + 00084 e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size + 00089 48 85 c0 test rax, rax + 0008c 74 33 je SHORT $LN7@NcInsertBl + 0008e 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000ac 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 000b0 48 83 c0 10 add rax, 16 - 000b4 48 8b c8 mov rcx, rax - 000b7 e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size - 000bc 48 85 c0 test rax, rax - 000bf 74 17 je SHORT $LN7@NcInsertBl + 00095 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 00099 48 83 c0 10 add rax, 16 + 0009d 48 8b c8 mov rcx, rax + 000a0 e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size + 000a5 48 85 c0 test rax, rax + 000a8 74 17 je SHORT $LN7@NcInsertBl ; 191 : NcFixLabelsForBlocks(Link->Block, Block); - 000c1 48 8b 95 08 01 + 000aa 48 8b 95 08 01 00 00 mov rdx, QWORD PTR Block$[rbp] - 000c8 48 8b 85 00 01 + 000b1 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000cf 48 8b 48 10 mov rcx, QWORD PTR [rax+16] - 000d3 e8 00 00 00 00 call ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z ; NcFixLabelsForBlocks + 000b8 48 8b 48 10 mov rcx, QWORD PTR [rax+16] + 000bc e8 00 00 00 00 call ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z ; NcFixLabelsForBlocks $LN7@NcInsertBl: ; 192 : ; 193 : if (Link->Prev) - 000d8 48 8b 85 00 01 + 000c1 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000df 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 000e4 74 18 je SHORT $LN8@NcInsertBl + 000c8 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 000cd 74 18 je SHORT $LN8@NcInsertBl ; 194 : Link->Prev->Next = Block->Start; - 000e6 48 8b 85 00 01 + 000cf 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000ed 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 000f1 48 8b 8d 08 01 + 000d6 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 000da 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 000f8 48 8b 09 mov rcx, QWORD PTR [rcx] - 000fb 48 89 08 mov QWORD PTR [rax], rcx + 000e1 48 8b 09 mov rcx, QWORD PTR [rcx] + 000e4 48 89 08 mov QWORD PTR [rax], rcx $LN8@NcInsertBl: ; 195 : Block->Start->Prev = Link->Prev; - 000fe 48 8b 85 08 01 + 000e7 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00105 48 8b 00 mov rax, QWORD PTR [rax] - 00108 48 8b 8d 00 01 + 000ee 48 8b 00 mov rax, QWORD PTR [rax] + 000f1 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 0010f 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 00113 48 89 48 08 mov QWORD PTR [rax+8], rcx + 000f8 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 000fc 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 196 : Block->End->Next = Link; - 00117 48 8b 85 08 01 + 00100 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0011e 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00122 48 8b 8d 00 01 + 00107 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0010b 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 00129 48 89 08 mov QWORD PTR [rax], rcx + 00112 48 89 08 mov QWORD PTR [rax], rcx ; 197 : Link->Prev = Block->End; - 0012c 48 8b 85 00 01 + 00115 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00133 48 8b 8d 08 01 + 0011c 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 0013a 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 0013e 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00123 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00127 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 198 : ; 199 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 00142 48 8b 85 08 01 + 0012b 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00149 48 8b 00 mov rax, QWORD PTR [rax] - 0014c 48 89 45 08 mov QWORD PTR T$1[rbp], rax - 00150 eb 0b jmp SHORT $LN4@NcInsertBl + 00132 48 8b 00 mov rax, QWORD PTR [rax] + 00135 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 00139 eb 0b jmp SHORT $LN4@NcInsertBl $LN2@NcInsertBl: - 00152 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00156 48 8b 00 mov rax, QWORD PTR [rax] - 00159 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 0013b 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 0013f 48 8b 00 mov rax, QWORD PTR [rax] + 00142 48 89 45 08 mov QWORD PTR T$1[rbp], rax $LN4@NcInsertBl: - 0015d 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 - 00162 74 29 je SHORT $LN3@NcInsertBl - 00164 48 8b 85 08 01 + 00146 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 0014b 74 29 je SHORT $LN3@NcInsertBl + 0014d 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0016b 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0016f 48 8b 00 mov rax, QWORD PTR [rax] - 00172 48 39 45 08 cmp QWORD PTR T$1[rbp], rax - 00176 74 15 je SHORT $LN3@NcInsertBl + 00154 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00158 48 8b 00 mov rax, QWORD PTR [rax] + 0015b 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 0015f 74 15 je SHORT $LN3@NcInsertBl ; 200 : T->Block = Link->Block; - 00178 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 0017c 48 8b 8d 00 01 + 00161 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00165 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 00183 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] - 00187 48 89 48 10 mov QWORD PTR [rax+16], rcx - 0018b eb c5 jmp SHORT $LN2@NcInsertBl + 0016c 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 00170 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00174 eb c5 jmp SHORT $LN2@NcInsertBl $LN3@NcInsertBl: ; 201 : ; 202 : return TRUE; - 0018d b8 01 00 00 00 mov eax, 1 + 00176 b8 01 00 00 00 mov eax, 1 $LN1@NcInsertBl: ; 203 : } - 00192 48 8d a5 e8 00 + 0017b 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00199 5f pop rdi - 0019a 5d pop rbp - 0019b c3 ret 0 + 00182 5f pop rdi + 00183 5d pop rbp + 00184 c3 ret 0 ?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ENDP ; NcInsertBlockBefore _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z _TEXT SEGMENT T$1 = 8 @@ -12430,178 +12416,172 @@ $LN10: 00011 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 167 : if (!Link || !Link->Block || !Block || !Block->Start || !Block->End || Link->Block == Block) - 00040 48 83 bd 00 01 + 00029 48 83 bd 00 01 00 00 00 cmp QWORD PTR Link$[rbp], 0 - 00048 74 47 je SHORT $LN6@NcInsertBl - 0004a 48 8b 85 00 01 + 00031 74 47 je SHORT $LN6@NcInsertBl + 00033 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00051 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 - 00056 74 39 je SHORT $LN6@NcInsertBl - 00058 48 83 bd 08 01 + 0003a 48 83 78 10 00 cmp QWORD PTR [rax+16], 0 + 0003f 74 39 je SHORT $LN6@NcInsertBl + 00041 48 83 bd 08 01 00 00 00 cmp QWORD PTR Block$[rbp], 0 - 00060 74 2f je SHORT $LN6@NcInsertBl - 00062 48 8b 85 08 01 + 00049 74 2f je SHORT $LN6@NcInsertBl + 0004b 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00069 48 83 38 00 cmp QWORD PTR [rax], 0 - 0006d 74 22 je SHORT $LN6@NcInsertBl - 0006f 48 8b 85 08 01 + 00052 48 83 38 00 cmp QWORD PTR [rax], 0 + 00056 74 22 je SHORT $LN6@NcInsertBl + 00058 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00076 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 0007b 74 14 je SHORT $LN6@NcInsertBl - 0007d 48 8b 85 00 01 + 0005f 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00064 74 14 je SHORT $LN6@NcInsertBl + 00066 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00084 48 8b 8d 08 01 + 0006d 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 0008b 48 39 48 10 cmp QWORD PTR [rax+16], rcx - 0008f 75 07 jne SHORT $LN5@NcInsertBl + 00074 48 39 48 10 cmp QWORD PTR [rax+16], rcx + 00078 75 07 jne SHORT $LN5@NcInsertBl $LN6@NcInsertBl: ; 168 : return FALSE; - 00091 33 c0 xor eax, eax - 00093 e9 0b 01 00 00 jmp $LN1@NcInsertBl + 0007a 33 c0 xor eax, eax + 0007c e9 0b 01 00 00 jmp $LN1@NcInsertBl $LN5@NcInsertBl: ; 169 : ; 170 : if (FixLabels && Block->LabelIds.size() && Link->Block->LabelIds.size()) - 00098 83 bd 10 01 00 + 00081 83 bd 10 01 00 00 00 cmp DWORD PTR FixLabels$[rbp], 0 - 0009f 74 4b je SHORT $LN7@NcInsertBl - 000a1 48 8b 85 08 01 + 00088 74 4b je SHORT $LN7@NcInsertBl + 0008a 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 000a8 48 83 c0 10 add rax, 16 - 000ac 48 8b c8 mov rcx, rax - 000af e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size - 000b4 48 85 c0 test rax, rax - 000b7 74 33 je SHORT $LN7@NcInsertBl - 000b9 48 8b 85 00 01 + 00091 48 83 c0 10 add rax, 16 + 00095 48 8b c8 mov rcx, rax + 00098 e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size + 0009d 48 85 c0 test rax, rax + 000a0 74 33 je SHORT $LN7@NcInsertBl + 000a2 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000c0 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 000c4 48 83 c0 10 add rax, 16 - 000c8 48 8b c8 mov rcx, rax - 000cb e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size - 000d0 48 85 c0 test rax, rax - 000d3 74 17 je SHORT $LN7@NcInsertBl + 000a9 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 000ad 48 83 c0 10 add rax, 16 + 000b1 48 8b c8 mov rcx, rax + 000b4 e8 00 00 00 00 call ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::size + 000b9 48 85 c0 test rax, rax + 000bc 74 17 je SHORT $LN7@NcInsertBl ; 171 : NcFixLabelsForBlocks(Link->Block, Block); - 000d5 48 8b 95 08 01 + 000be 48 8b 95 08 01 00 00 mov rdx, QWORD PTR Block$[rbp] - 000dc 48 8b 85 00 01 + 000c5 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000e3 48 8b 48 10 mov rcx, QWORD PTR [rax+16] - 000e7 e8 00 00 00 00 call ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z ; NcFixLabelsForBlocks + 000cc 48 8b 48 10 mov rcx, QWORD PTR [rax+16] + 000d0 e8 00 00 00 00 call ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z ; NcFixLabelsForBlocks $LN7@NcInsertBl: ; 172 : ; 173 : if (Link->Next) - 000ec 48 8b 85 00 01 + 000d5 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000f3 48 83 38 00 cmp QWORD PTR [rax], 0 - 000f7 74 19 je SHORT $LN8@NcInsertBl + 000dc 48 83 38 00 cmp QWORD PTR [rax], 0 + 000e0 74 19 je SHORT $LN8@NcInsertBl ; 174 : Link->Next->Prev = Block->End; - 000f9 48 8b 85 00 01 + 000e2 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00100 48 8b 00 mov rax, QWORD PTR [rax] - 00103 48 8b 8d 08 01 + 000e9 48 8b 00 mov rax, QWORD PTR [rax] + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 0010a 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 0010e 48 89 48 08 mov QWORD PTR [rax+8], rcx + 000f3 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 000f7 48 89 48 08 mov QWORD PTR [rax+8], rcx $LN8@NcInsertBl: ; 175 : Block->End->Next = Link->Next; - 00112 48 8b 85 08 01 + 000fb 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00119 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0011d 48 8b 8d 00 01 + 00102 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00106 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 00124 48 8b 09 mov rcx, QWORD PTR [rcx] - 00127 48 89 08 mov QWORD PTR [rax], rcx + 0010d 48 8b 09 mov rcx, QWORD PTR [rcx] + 00110 48 89 08 mov QWORD PTR [rax], rcx ; 176 : Block->Start->Prev = Link; - 0012a 48 8b 85 08 01 + 00113 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00131 48 8b 00 mov rax, QWORD PTR [rax] - 00134 48 8b 8d 00 01 + 0011a 48 8b 00 mov rax, QWORD PTR [rax] + 0011d 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 0013b 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00124 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 177 : Link->Next = Block->Start; - 0013f 48 8b 85 00 01 + 00128 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00146 48 8b 8d 08 01 + 0012f 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 0014d 48 8b 09 mov rcx, QWORD PTR [rcx] - 00150 48 89 08 mov QWORD PTR [rax], rcx + 00136 48 8b 09 mov rcx, QWORD PTR [rcx] + 00139 48 89 08 mov QWORD PTR [rax], rcx ; 178 : ; 179 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 00153 48 8b 85 08 01 + 0013c 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0015a 48 8b 00 mov rax, QWORD PTR [rax] - 0015d 48 89 45 08 mov QWORD PTR T$1[rbp], rax - 00161 eb 0b jmp SHORT $LN4@NcInsertBl + 00143 48 8b 00 mov rax, QWORD PTR [rax] + 00146 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 0014a eb 0b jmp SHORT $LN4@NcInsertBl $LN2@NcInsertBl: - 00163 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00167 48 8b 00 mov rax, QWORD PTR [rax] - 0016a 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 0014c 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00150 48 8b 00 mov rax, QWORD PTR [rax] + 00153 48 89 45 08 mov QWORD PTR T$1[rbp], rax $LN4@NcInsertBl: - 0016e 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 - 00173 74 29 je SHORT $LN3@NcInsertBl - 00175 48 8b 85 08 01 + 00157 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 0015c 74 29 je SHORT $LN3@NcInsertBl + 0015e 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0017c 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00180 48 8b 00 mov rax, QWORD PTR [rax] - 00183 48 39 45 08 cmp QWORD PTR T$1[rbp], rax - 00187 74 15 je SHORT $LN3@NcInsertBl + 00165 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00169 48 8b 00 mov rax, QWORD PTR [rax] + 0016c 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 00170 74 15 je SHORT $LN3@NcInsertBl ; 180 : T->Block = Link->Block; - 00189 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 0018d 48 8b 8d 00 01 + 00172 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00176 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 00194 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] - 00198 48 89 48 10 mov QWORD PTR [rax+16], rcx - 0019c eb c5 jmp SHORT $LN2@NcInsertBl + 0017d 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 00181 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00185 eb c5 jmp SHORT $LN2@NcInsertBl $LN3@NcInsertBl: ; 181 : ; 182 : return TRUE; - 0019e b8 01 00 00 00 mov eax, 1 + 00187 b8 01 00 00 00 mov eax, 1 $LN1@NcInsertBl: ; 183 : } - 001a3 48 8d a5 e8 00 + 0018c 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 001aa 5f pop rdi - 001ab 5d pop rbp - 001ac c3 ret 0 + 00193 5f pop rdi + 00194 5d pop rbp + 00195 c3 ret 0 ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ENDP ; NcInsertBlockAfter _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z _TEXT SEGMENT T$1 = 8 @@ -12621,16 +12601,14 @@ tv138 = 552 tv133 = 560 tv183 = 568 tv92 = 576 -tv198 = 584 -tv188 = 592 -tv161 = 600 -tv153 = 608 -tv199 = 616 -tv193 = 624 -tv159 = 632 -tv165 = 640 -Block1$ = 688 -Block2$ = 696 +tv188 = 584 +tv161 = 592 +tv153 = 600 +tv193 = 608 +tv159 = 616 +tv165 = 624 +Block1$ = 672 +Block2$ = 680 ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z PROC ; NcFixLabelsForBlocks, COMDAT ; 155 : { @@ -12640,442 +12618,213 @@ $LN17: 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi - 0000c 48 81 ec b8 02 - 00 00 sub rsp, 696 ; 000002b8H + 0000c 48 81 ec a8 02 + 00 00 sub rsp, 680 ; 000002a8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 ae 00 00 00 mov ecx, 174 ; 000000aeH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 d8 - 02 00 00 mov rcx, QWORD PTR [rsp+728] - 0002f c7 85 04 02 00 + 00018 c7 85 04 02 00 00 00 00 00 00 mov DWORD PTR $T9[rbp], 0 - 00039 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 156 : for (PNATIVE_CODE_LINK T = Block2->Start; T && T != Block2->End->Next; T = T->Next) - 00045 48 8b 85 b8 02 + 0002e 48 8b 85 a8 02 00 00 mov rax, QWORD PTR Block2$[rbp] - 0004c 48 8b 00 mov rax, QWORD PTR [rax] - 0004f 48 89 45 08 mov QWORD PTR T$1[rbp], rax - 00053 eb 0b jmp SHORT $LN4@NcFixLabel + 00035 48 8b 00 mov rax, QWORD PTR [rax] + 00038 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 0003c eb 0b jmp SHORT $LN4@NcFixLabel $LN2@NcFixLabel: - 00055 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00059 48 8b 00 mov rax, QWORD PTR [rax] - 0005c 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 0003e 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 89 45 08 mov QWORD PTR T$1[rbp], rax $LN4@NcFixLabel: - 00060 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 - 00065 0f 84 2e 02 00 + 00049 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 0004e 0f 84 11 02 00 00 je $LN3@NcFixLabel - 0006b 48 8b 85 b8 02 + 00054 48 8b 85 a8 02 00 00 mov rax, QWORD PTR Block2$[rbp] - 00072 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00076 48 8b 00 mov rax, QWORD PTR [rax] - 00079 48 39 45 08 cmp QWORD PTR T$1[rbp], rax - 0007d 0f 84 16 02 00 + 0005b 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0005f 48 8b 00 mov rax, QWORD PTR [rax] + 00062 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 00066 0f 84 f9 01 00 00 je $LN3@NcFixLabel ; 157 : { ; 158 : if ((T->Flags & CODE_FLAG_IS_LABEL) && StdFind(Block1->LabelIds.begin(), Block1->LabelIds.end(), T->Label) != Block1->LabelIds.end()) - 00083 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00087 8b 40 18 mov eax, DWORD PTR [rax+24] - 0008a 83 e0 01 and eax, 1 - 0008d 85 c0 test eax, eax - 0008f 0f 84 64 01 00 + 0006c 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00070 8b 40 18 mov eax, DWORD PTR [rax+24] + 00073 83 e0 01 and eax, 1 + 00076 85 c0 test eax, eax + 00078 0f 84 48 01 00 00 je $LN7@NcFixLabel - 00095 48 8d 85 08 01 + 0007e 48 8d 85 08 01 00 00 lea rax, QWORD PTR $T3[rbp] - 0009c 48 89 85 38 01 + 00085 48 89 85 38 01 00 00 mov QWORD PTR $T4[rbp], rax - 000a3 48 8b 85 b0 02 + 0008c 48 8b 85 a0 02 00 00 mov rax, QWORD PTR Block1$[rbp] - 000aa 48 83 c0 10 add rax, 16 - 000ae 48 89 85 18 02 + 00093 48 83 c0 10 add rax, 16 + 00097 48 89 85 18 02 00 00 mov QWORD PTR tv89[rbp], rax - 000b5 48 8b 95 38 01 + 0009e 48 8b 95 38 01 00 00 mov rdx, QWORD PTR $T4[rbp] - 000bc 48 8b 8d 18 02 + 000a5 48 8b 8d 18 02 00 00 mov rcx, QWORD PTR tv89[rbp] - 000c3 e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end - 000c8 48 89 85 20 02 + 000ac e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end + 000b1 48 89 85 20 02 00 00 mov QWORD PTR tv181[rbp], rax - 000cf 48 8b 85 20 02 + 000b8 48 8b 85 20 02 00 00 mov rax, QWORD PTR tv181[rbp] - 000d6 48 89 85 28 02 + 000bf 48 89 85 28 02 00 00 mov QWORD PTR tv138[rbp], rax - 000dd 48 8d 85 58 01 + 000c6 48 8d 85 58 01 00 00 lea rax, QWORD PTR $T5[rbp] - 000e4 48 89 85 88 01 + 000cd 48 89 85 88 01 00 00 mov QWORD PTR $T6[rbp], rax - 000eb 48 8b 85 b0 02 + 000d4 48 8b 85 a0 02 00 00 mov rax, QWORD PTR Block1$[rbp] - 000f2 48 83 c0 10 add rax, 16 - 000f6 48 89 85 30 02 + 000db 48 83 c0 10 add rax, 16 + 000df 48 89 85 30 02 00 00 mov QWORD PTR tv133[rbp], rax - 000fd 48 8b 95 88 01 + 000e6 48 8b 95 88 01 00 00 mov rdx, QWORD PTR $T6[rbp] - 00104 48 8b 8d 30 02 + 000ed 48 8b 8d 30 02 00 00 mov rcx, QWORD PTR tv133[rbp] - 0010b e8 00 00 00 00 call ?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::begin - 00110 48 89 85 38 02 + 000f4 e8 00 00 00 00 call ?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::begin + 000f9 48 89 85 38 02 00 00 mov QWORD PTR tv183[rbp], rax - 00117 48 8b 85 38 02 + 00100 48 8b 85 38 02 00 00 mov rax, QWORD PTR tv183[rbp] - 0011e 48 89 85 40 02 + 00107 48 89 85 40 02 00 00 mov QWORD PTR tv92[rbp], rax - 00125 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00129 48 83 c0 1c add rax, 28 - 0012d 4c 8b c8 mov r9, rax - 00130 4c 8b 85 28 02 + 0010e 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00112 48 83 c0 1c add rax, 28 + 00116 4c 8b c8 mov r9, rax + 00119 4c 8b 85 28 02 00 00 mov r8, QWORD PTR tv138[rbp] - 00137 48 8b 95 40 02 + 00120 48 8b 95 40 02 00 00 mov rdx, QWORD PTR tv92[rbp] - 0013e 48 8d 8d a8 01 + 00127 48 8d 8d a8 01 00 00 lea rcx, QWORD PTR $T7[rbp] - 00145 e8 00 00 00 00 call ??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z ; std::find > >,unsigned long> - 0014a 48 89 85 48 02 - 00 00 mov QWORD PTR tv198[rbp], rax - 00151 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR tv198[rbp] - 00158 48 89 85 50 02 + 0012e e8 00 00 00 00 call ??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z ; std::find > >,unsigned long> + 00133 48 89 85 48 02 00 00 mov QWORD PTR tv188[rbp], rax - 0015f 8b 85 04 02 00 + 0013a 8b 85 04 02 00 00 mov eax, DWORD PTR $T9[rbp] - 00165 83 c8 01 or eax, 1 - 00168 89 85 04 02 00 + 00140 83 c8 01 or eax, 1 + 00143 89 85 04 02 00 00 mov DWORD PTR $T9[rbp], eax - 0016e 48 8b 85 50 02 + 00149 48 8b 85 48 02 00 00 mov rax, QWORD PTR tv188[rbp] - 00175 48 89 85 58 02 + 00150 48 89 85 50 02 00 00 mov QWORD PTR tv161[rbp], rax - 0017c 48 8b 85 b0 02 + 00157 48 8b 85 a0 02 00 00 mov rax, QWORD PTR Block1$[rbp] - 00183 48 83 c0 10 add rax, 16 - 00187 48 89 85 60 02 + 0015e 48 83 c0 10 add rax, 16 + 00162 48 89 85 58 02 00 00 mov QWORD PTR tv153[rbp], rax - 0018e 48 8d 95 d8 01 + 00169 48 8d 95 d8 01 00 00 lea rdx, QWORD PTR $T8[rbp] - 00195 48 8b 8d 60 02 + 00170 48 8b 8d 58 02 00 00 mov rcx, QWORD PTR tv153[rbp] - 0019c e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end - 001a1 48 89 85 68 02 - 00 00 mov QWORD PTR tv199[rbp], rax - 001a8 48 8b 85 68 02 - 00 00 mov rax, QWORD PTR tv199[rbp] - 001af 48 89 85 70 02 + 00177 e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end + 0017c 48 89 85 60 02 00 00 mov QWORD PTR tv193[rbp], rax - 001b6 8b 85 04 02 00 - 00 mov eax, DWORD PTR $T9[rbp] - 001bc 83 c8 02 or eax, 2 - 001bf 89 85 04 02 00 - 00 mov DWORD PTR $T9[rbp], eax - 001c5 48 8b 85 70 02 - 00 00 mov rax, QWORD PTR tv193[rbp] - 001cc 48 89 85 78 02 - 00 00 mov QWORD PTR tv159[rbp], rax - 001d3 48 8b 95 78 02 - 00 00 mov rdx, QWORD PTR tv159[rbp] - 001da 48 8b 8d 58 02 - 00 00 mov rcx, QWORD PTR tv161[rbp] - 001e1 e8 00 00 00 00 call ??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ; std::_Vector_const_iterator > >::operator!= - 001e6 0f b6 c0 movzx eax, al - 001e9 85 c0 test eax, eax - 001eb 74 0c je SHORT $LN7@NcFixLabel - 001ed c7 85 80 02 00 - 00 01 00 00 00 mov DWORD PTR tv165[rbp], 1 - 001f7 eb 0a jmp SHORT $LN8@NcFixLabel -$LN7@NcFixLabel: - 001f9 c7 85 80 02 00 - 00 00 00 00 00 mov DWORD PTR tv165[rbp], 0 -$LN8@NcFixLabel: - 00203 0f b6 85 80 02 - 00 00 movzx eax, BYTE PTR tv165[rbp] - 0020a 88 85 e4 00 00 - 00 mov BYTE PTR $T2[rbp], al - 00210 8b 85 04 02 00 - 00 mov eax, DWORD PTR $T9[rbp] - 00216 83 e0 02 and eax, 2 - 00219 85 c0 test eax, eax - 0021b 74 14 je SHORT $LN15@NcFixLabel - 0021d 83 a5 04 02 00 - 00 fd and DWORD PTR $T9[rbp], -3 - 00224 48 8d 8d d8 01 - 00 00 lea rcx, QWORD PTR $T8[rbp] - 0022b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 00230 90 npad 1 -$LN15@NcFixLabel: - 00231 8b 85 04 02 00 - 00 mov eax, DWORD PTR $T9[rbp] - 00237 83 e0 01 and eax, 1 - 0023a 85 c0 test eax, eax - 0023c 74 13 je SHORT $LN16@NcFixLabel - 0023e 83 a5 04 02 00 - 00 fe and DWORD PTR $T9[rbp], -2 - 00245 48 8d 8d a8 01 - 00 00 lea rcx, QWORD PTR $T7[rbp] - 0024c e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ -$LN16@NcFixLabel: - 00251 0f b6 85 e4 00 - 00 00 movzx eax, BYTE PTR $T2[rbp] - 00258 85 c0 test eax, eax - 0025a 74 38 je SHORT $LN5@NcFixLabel - -; 159 : { -; 160 : NcChangeLabelId(Block2, T->Label, NcGenUnusedLabelId(Block1)); - - 0025c 48 8b 8d b0 02 - 00 00 mov rcx, QWORD PTR Block1$[rbp] - 00263 e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId - 00268 89 85 14 02 00 - 00 mov DWORD PTR tv178[rbp], eax - 0026e 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00272 8b 40 1c mov eax, DWORD PTR [rax+28] - 00275 89 85 18 02 00 - 00 mov DWORD PTR tv176[rbp], eax - 0027b 44 8b 85 14 02 - 00 00 mov r8d, DWORD PTR tv178[rbp] - 00282 8b 95 18 02 00 - 00 mov edx, DWORD PTR tv176[rbp] - 00288 48 8b 8d b8 02 - 00 00 mov rcx, QWORD PTR Block2$[rbp] - 0028f e8 00 00 00 00 call ?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z ; NcChangeLabelId -$LN5@NcFixLabel: - -; 161 : } -; 162 : } - - 00294 e9 bc fd ff ff jmp $LN2@NcFixLabel -$LN3@NcFixLabel: - -; 163 : } - - 00299 48 8d a5 98 02 - 00 00 lea rsp, QWORD PTR [rbp+664] - 002a0 5f pop rdi - 002a1 5d pop rbp - 002a2 c3 ret 0 -?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z ENDP ; NcFixLabelsForBlocks -_TEXT ENDS -; COMDAT text$x -text$x SEGMENT -T$1 = 8 -$T2 = 228 -$T3 = 264 -$T4 = 312 -$T5 = 344 -$T6 = 392 -$T7 = 424 -$T8 = 472 -$T9 = 516 -tv178 = 532 -tv176 = 536 -tv89 = 536 -tv181 = 544 -tv138 = 552 -tv133 = 560 -tv183 = 568 -tv92 = 576 -tv198 = 584 -tv188 = 592 -tv161 = 600 -tv153 = 608 -tv199 = 616 -tv193 = 624 -tv159 = 632 -tv165 = 640 -Block1$ = 688 -Block2$ = 696 -?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA PROC ; `NcFixLabelsForBlocks'::`1'::dtor$2 - 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 8b 85 04 02 00 - 00 mov eax, DWORD PTR $T9[rbp] - 0001a 83 e0 01 and eax, 1 - 0001d 85 c0 test eax, eax - 0001f 74 13 je SHORT $LN12@dtor$2 - 00021 83 a5 04 02 00 - 00 fe and DWORD PTR $T9[rbp], -2 - 00028 48 8d 8d a8 01 - 00 00 lea rcx, QWORD PTR $T7[rbp] - 0002f e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ -$LN12@dtor$2: - 00034 48 83 c4 28 add rsp, 40 ; 00000028H - 00038 5f pop rdi - 00039 5d pop rbp - 0003a c3 ret 0 -?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA ENDP ; `NcFixLabelsForBlocks'::`1'::dtor$2 -text$x ENDS -; COMDAT text$x -text$x SEGMENT -T$1 = 8 -$T2 = 228 -$T3 = 264 -$T4 = 312 -$T5 = 344 -$T6 = 392 -$T7 = 424 -$T8 = 472 -$T9 = 516 -tv178 = 532 -tv176 = 536 -tv89 = 536 -tv181 = 544 -tv138 = 552 -tv133 = 560 -tv183 = 568 -tv92 = 576 -tv198 = 584 -tv188 = 592 -tv161 = 600 -tv153 = 608 -tv199 = 616 -tv193 = 624 -tv159 = 632 -tv165 = 640 -Block1$ = 688 -Block2$ = 696 -?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA PROC ; `NcFixLabelsForBlocks'::`1'::dtor$3 - 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 8b 85 04 02 00 + 00183 8b 85 04 02 00 00 mov eax, DWORD PTR $T9[rbp] - 0001a 83 e0 02 and eax, 2 - 0001d 85 c0 test eax, eax - 0001f 74 13 je SHORT $LN14@dtor$3 - 00021 83 a5 04 02 00 + 00189 83 c8 02 or eax, 2 + 0018c 89 85 04 02 00 + 00 mov DWORD PTR $T9[rbp], eax + 00192 48 8b 85 60 02 + 00 00 mov rax, QWORD PTR tv193[rbp] + 00199 48 89 85 68 02 + 00 00 mov QWORD PTR tv159[rbp], rax + 001a0 48 8b 95 68 02 + 00 00 mov rdx, QWORD PTR tv159[rbp] + 001a7 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR tv161[rbp] + 001ae e8 00 00 00 00 call ??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ; std::_Vector_const_iterator > >::operator!= + 001b3 0f b6 c0 movzx eax, al + 001b6 85 c0 test eax, eax + 001b8 74 0c je SHORT $LN7@NcFixLabel + 001ba c7 85 70 02 00 + 00 01 00 00 00 mov DWORD PTR tv165[rbp], 1 + 001c4 eb 0a jmp SHORT $LN8@NcFixLabel +$LN7@NcFixLabel: + 001c6 c7 85 70 02 00 + 00 00 00 00 00 mov DWORD PTR tv165[rbp], 0 +$LN8@NcFixLabel: + 001d0 0f b6 85 70 02 + 00 00 movzx eax, BYTE PTR tv165[rbp] + 001d7 88 85 e4 00 00 + 00 mov BYTE PTR $T2[rbp], al + 001dd 8b 85 04 02 00 + 00 mov eax, DWORD PTR $T9[rbp] + 001e3 83 e0 02 and eax, 2 + 001e6 85 c0 test eax, eax + 001e8 74 13 je SHORT $LN15@NcFixLabel + 001ea 83 a5 04 02 00 00 fd and DWORD PTR $T9[rbp], -3 - 00028 48 8d 8d d8 01 + 001f1 48 8d 8d d8 01 00 00 lea rcx, QWORD PTR $T8[rbp] - 0002f e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ -$LN14@dtor$3: - 00034 48 83 c4 28 add rsp, 40 ; 00000028H - 00038 5f pop rdi - 00039 5d pop rbp - 0003a c3 ret 0 -?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA ENDP ; `NcFixLabelsForBlocks'::`1'::dtor$3 -text$x ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT text$x -text$x SEGMENT -T$1 = 8 -$T2 = 228 -$T3 = 264 -$T4 = 312 -$T5 = 344 -$T6 = 392 -$T7 = 424 -$T8 = 472 -$T9 = 516 -tv178 = 532 -tv176 = 536 -tv89 = 536 -tv181 = 544 -tv138 = 552 -tv133 = 560 -tv183 = 568 -tv92 = 576 -tv198 = 584 -tv188 = 592 -tv161 = 600 -tv153 = 608 -tv199 = 616 -tv193 = 624 -tv159 = 632 -tv165 = 640 -Block1$ = 688 -Block2$ = 696 -?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA PROC ; `NcFixLabelsForBlocks'::`1'::dtor$2 - 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 8b 85 04 02 00 + 001f8 e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ +$LN15@NcFixLabel: + 001fd 8b 85 04 02 00 00 mov eax, DWORD PTR $T9[rbp] - 0001a 83 e0 01 and eax, 1 - 0001d 85 c0 test eax, eax - 0001f 74 13 je SHORT $LN12@dtor$2 - 00021 83 a5 04 02 00 + 00203 83 e0 01 and eax, 1 + 00206 85 c0 test eax, eax + 00208 74 13 je SHORT $LN16@NcFixLabel + 0020a 83 a5 04 02 00 00 fe and DWORD PTR $T9[rbp], -2 - 00028 48 8d 8d a8 01 + 00211 48 8d 8d a8 01 00 00 lea rcx, QWORD PTR $T7[rbp] - 0002f e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ -$LN12@dtor$2: - 00034 48 83 c4 28 add rsp, 40 ; 00000028H - 00038 5f pop rdi - 00039 5d pop rbp - 0003a c3 ret 0 -?dtor$2@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA ENDP ; `NcFixLabelsForBlocks'::`1'::dtor$2 -text$x ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT text$x -text$x SEGMENT -T$1 = 8 -$T2 = 228 -$T3 = 264 -$T4 = 312 -$T5 = 344 -$T6 = 392 -$T7 = 424 -$T8 = 472 -$T9 = 516 -tv178 = 532 -tv176 = 536 -tv89 = 536 -tv181 = 544 -tv138 = 552 -tv133 = 560 -tv183 = 568 -tv92 = 576 -tv198 = 584 -tv188 = 592 -tv161 = 600 -tv153 = 608 -tv199 = 616 -tv193 = 624 -tv159 = 632 -tv165 = 640 -Block1$ = 688 -Block2$ = 696 -?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA PROC ; `NcFixLabelsForBlocks'::`1'::dtor$3 - 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 8b 85 04 02 00 - 00 mov eax, DWORD PTR $T9[rbp] - 0001a 83 e0 02 and eax, 2 - 0001d 85 c0 test eax, eax - 0001f 74 13 je SHORT $LN14@dtor$3 - 00021 83 a5 04 02 00 - 00 fd and DWORD PTR $T9[rbp], -3 - 00028 48 8d 8d d8 01 - 00 00 lea rcx, QWORD PTR $T8[rbp] - 0002f e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ -$LN14@dtor$3: - 00034 48 83 c4 28 add rsp, 40 ; 00000028H - 00038 5f pop rdi - 00039 5d pop rbp - 0003a c3 ret 0 -?dtor$3@?0??NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z@4HA ENDP ; `NcFixLabelsForBlocks'::`1'::dtor$3 -text$x ENDS + 00218 e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ +$LN16@NcFixLabel: + 0021d 0f b6 85 e4 00 + 00 00 movzx eax, BYTE PTR $T2[rbp] + 00224 85 c0 test eax, eax + 00226 74 38 je SHORT $LN5@NcFixLabel + +; 159 : { +; 160 : NcChangeLabelId(Block2, T->Label, NcGenUnusedLabelId(Block1)); + + 00228 48 8b 8d a0 02 + 00 00 mov rcx, QWORD PTR Block1$[rbp] + 0022f e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId + 00234 89 85 14 02 00 + 00 mov DWORD PTR tv178[rbp], eax + 0023a 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 0023e 8b 40 1c mov eax, DWORD PTR [rax+28] + 00241 89 85 18 02 00 + 00 mov DWORD PTR tv176[rbp], eax + 00247 44 8b 85 14 02 + 00 00 mov r8d, DWORD PTR tv178[rbp] + 0024e 8b 95 18 02 00 + 00 mov edx, DWORD PTR tv176[rbp] + 00254 48 8b 8d a8 02 + 00 00 mov rcx, QWORD PTR Block2$[rbp] + 0025b e8 00 00 00 00 call ?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z ; NcChangeLabelId +$LN5@NcFixLabel: + +; 161 : } +; 162 : } + + 00260 e9 d9 fd ff ff jmp $LN2@NcFixLabel +$LN3@NcFixLabel: + +; 163 : } + + 00265 48 8d a5 88 02 + 00 00 lea rsp, QWORD PTR [rbp+648] + 0026c 5f pop rdi + 0026d 5d pop rbp + 0026e c3 ret 0 +?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z ENDP ; NcFixLabelsForBlocks +_TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT ReturnLabelId$ = 4 @@ -13093,15 +12842,13 @@ tv130 = 520 tv93 = 528 tv166 = 536 tv84 = 544 -tv171 = 552 -tv168 = 560 -tv153 = 568 -tv145 = 576 -tv172 = 584 -tv170 = 592 -tv151 = 600 -__$ArrayPad$ = 608 -Block$ = 656 +tv168 = 552 +tv153 = 560 +tv145 = 568 +tv170 = 576 +tv151 = 584 +__$ArrayPad$ = 592 +Block$ = 640 ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcGenUnusedLabelId, COMDAT ; 137 : { @@ -13110,345 +12857,166 @@ $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 98 02 - 00 00 sub rsp, 664 ; 00000298H + 00007 48 81 ec 88 02 + 00 00 sub rsp, 648 ; 00000288H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 a6 00 00 00 mov ecx, 166 ; 000000a6H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 b8 - 02 00 00 mov rcx, QWORD PTR [rsp+696] - 0002a 48 8b 05 00 00 + 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00018 b9 6a 00 00 00 mov ecx, 106 ; 0000006aH + 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00022 f3 ab rep stosd + 00024 48 8b 8c 24 a8 + 02 00 00 mov rcx, QWORD PTR [rsp+680] + 0002c 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 60 02 + 00033 48 33 c5 xor rax, rbp + 00036 48 89 85 50 02 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 138 : ULONG ReturnLabelId = rand(); - 00047 ff 15 00 00 00 + 00049 ff 15 00 00 00 00 call QWORD PTR __imp_rand - 0004d 89 45 04 mov DWORD PTR ReturnLabelId$[rbp], eax + 0004f 89 45 04 mov DWORD PTR ReturnLabelId$[rbp], eax $LN2@NcGenUnuse: ; 139 : while (StdFind(Block->LabelIds.begin(), Block->LabelIds.end(), ReturnLabelId) != Block->LabelIds.end()) - 00050 48 8d 85 08 01 + 00052 48 8d 85 08 01 00 00 lea rax, QWORD PTR $T5[rbp] - 00057 48 89 85 38 01 + 00059 48 89 85 38 01 00 00 mov QWORD PTR $T6[rbp], rax - 0005e 48 8b 85 90 02 + 00060 48 8b 85 80 02 00 00 mov rax, QWORD PTR Block$[rbp] - 00065 48 83 c0 10 add rax, 16 - 00069 48 89 85 f8 01 + 00067 48 83 c0 10 add rax, 16 + 0006b 48 89 85 f8 01 00 00 mov QWORD PTR tv81[rbp], rax - 00070 48 8b 95 38 01 + 00072 48 8b 95 38 01 00 00 mov rdx, QWORD PTR $T6[rbp] - 00077 48 8b 8d f8 01 + 00079 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR tv81[rbp] - 0007e e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end - 00083 48 89 85 00 02 + 00080 e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end + 00085 48 89 85 00 02 00 00 mov QWORD PTR tv164[rbp], rax - 0008a 48 8b 85 00 02 + 0008c 48 8b 85 00 02 00 00 mov rax, QWORD PTR tv164[rbp] - 00091 48 89 85 08 02 + 00093 48 89 85 08 02 00 00 mov QWORD PTR tv130[rbp], rax - 00098 48 8d 85 58 01 + 0009a 48 8d 85 58 01 00 00 lea rax, QWORD PTR $T7[rbp] - 0009f 48 89 85 88 01 + 000a1 48 89 85 88 01 00 00 mov QWORD PTR $T8[rbp], rax - 000a6 48 8b 85 90 02 + 000a8 48 8b 85 80 02 00 00 mov rax, QWORD PTR Block$[rbp] - 000ad 48 83 c0 10 add rax, 16 - 000b1 48 89 85 10 02 + 000af 48 83 c0 10 add rax, 16 + 000b3 48 89 85 10 02 00 00 mov QWORD PTR tv93[rbp], rax - 000b8 48 8b 95 88 01 + 000ba 48 8b 95 88 01 00 00 mov rdx, QWORD PTR $T8[rbp] - 000bf 48 8b 8d 10 02 + 000c1 48 8b 8d 10 02 00 00 mov rcx, QWORD PTR tv93[rbp] - 000c6 e8 00 00 00 00 call ?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::begin - 000cb 48 89 85 18 02 - 00 00 mov QWORD PTR tv166[rbp], rax - 000d2 48 8b 85 18 02 - 00 00 mov rax, QWORD PTR tv166[rbp] - 000d9 48 89 85 20 02 - 00 00 mov QWORD PTR tv84[rbp], rax - 000e0 4c 8d 4d 04 lea r9, QWORD PTR ReturnLabelId$[rbp] - 000e4 4c 8b 85 08 02 - 00 00 mov r8, QWORD PTR tv130[rbp] - 000eb 48 8b 95 20 02 - 00 00 mov rdx, QWORD PTR tv84[rbp] - 000f2 48 8d 8d a8 01 - 00 00 lea rcx, QWORD PTR $T9[rbp] - 000f9 e8 00 00 00 00 call ??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z ; std::find > >,unsigned long> - 000fe 48 89 85 28 02 - 00 00 mov QWORD PTR tv171[rbp], rax - 00105 48 8b 85 28 02 - 00 00 mov rax, QWORD PTR tv171[rbp] - 0010c 48 89 85 30 02 - 00 00 mov QWORD PTR tv168[rbp], rax - 00113 48 8b 85 30 02 - 00 00 mov rax, QWORD PTR tv168[rbp] - 0011a 48 89 85 38 02 - 00 00 mov QWORD PTR tv153[rbp], rax - 00121 48 8b 85 90 02 - 00 00 mov rax, QWORD PTR Block$[rbp] - 00128 48 83 c0 10 add rax, 16 - 0012c 48 89 85 40 02 - 00 00 mov QWORD PTR tv145[rbp], rax - 00133 48 8d 95 d8 01 - 00 00 lea rdx, QWORD PTR $T10[rbp] - 0013a 48 8b 8d 40 02 - 00 00 mov rcx, QWORD PTR tv145[rbp] - 00141 e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end - 00146 48 89 85 48 02 - 00 00 mov QWORD PTR tv172[rbp], rax - 0014d 48 8b 85 48 02 - 00 00 mov rax, QWORD PTR tv172[rbp] - 00154 48 89 85 50 02 - 00 00 mov QWORD PTR tv170[rbp], rax - 0015b 48 8b 85 50 02 - 00 00 mov rax, QWORD PTR tv170[rbp] - 00162 48 89 85 58 02 - 00 00 mov QWORD PTR tv151[rbp], rax - 00169 48 8b 95 58 02 - 00 00 mov rdx, QWORD PTR tv151[rbp] - 00170 48 8b 8d 38 02 - 00 00 mov rcx, QWORD PTR tv153[rbp] - 00177 e8 00 00 00 00 call ??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ; std::_Vector_const_iterator > >::operator!= - 0017c 88 85 e4 00 00 - 00 mov BYTE PTR $T4[rbp], al - 00182 48 8d 8d d8 01 - 00 00 lea rcx, QWORD PTR $T10[rbp] - 00189 e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 0018e 90 npad 1 - 0018f 48 8d 8d a8 01 - 00 00 lea rcx, QWORD PTR $T9[rbp] - 00196 e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 0019b 0f b6 85 e4 00 - 00 00 movzx eax, BYTE PTR $T4[rbp] - 001a2 85 c0 test eax, eax - 001a4 74 0e je SHORT $LN3@NcGenUnuse - -; 140 : ReturnLabelId = rand(); - - 001a6 ff 15 00 00 00 - 00 call QWORD PTR __imp_rand - 001ac 89 45 04 mov DWORD PTR ReturnLabelId$[rbp], eax - 001af e9 9c fe ff ff jmp $LN2@NcGenUnuse -$LN3@NcGenUnuse: - -; 141 : Block->LabelIds.push_back(ReturnLabelId); - - 001b4 48 8b 85 90 02 - 00 00 mov rax, QWORD PTR Block$[rbp] - 001bb 48 83 c0 10 add rax, 16 - 001bf 48 89 85 f8 01 - 00 00 mov QWORD PTR tv161[rbp], rax - 001c6 48 8d 55 04 lea rdx, QWORD PTR ReturnLabelId$[rbp] - 001ca 48 8b 8d f8 01 - 00 00 mov rcx, QWORD PTR tv161[rbp] - 001d1 e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back - -; 142 : return ReturnLabelId; - - 001d6 8b 45 04 mov eax, DWORD PTR ReturnLabelId$[rbp] - -; 143 : } - - 001d9 8b f8 mov edi, eax - 001db 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 001df 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData - 001e6 e8 00 00 00 00 call _RTC_CheckStackVars - 001eb 8b c7 mov eax, edi - 001ed 48 8b 8d 60 02 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 001f4 48 33 cd xor rcx, rbp - 001f7 e8 00 00 00 00 call __security_check_cookie - 001fc 48 8d a5 78 02 - 00 00 lea rsp, QWORD PTR [rbp+632] - 00203 5f pop rdi - 00204 5d pop rbp - 00205 c3 ret 0 -?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcGenUnusedLabelId -_TEXT ENDS -; COMDAT text$x -text$x SEGMENT -ReturnLabelId$ = 4 -$T4 = 228 -$T5 = 264 -$T6 = 312 -$T7 = 344 -$T8 = 392 -$T9 = 424 -$T10 = 472 -tv161 = 504 -tv81 = 504 -tv164 = 512 -tv130 = 520 -tv93 = 528 -tv166 = 536 -tv84 = 544 -tv171 = 552 -tv168 = 560 -tv153 = 568 -tv145 = 576 -tv172 = 584 -tv170 = 592 -tv151 = 600 -__$ArrayPad$ = 608 -Block$ = 656 -?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `NcGenUnusedLabelId'::`1'::dtor$2 - 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 48 8d 8d a8 01 - 00 00 lea rcx, QWORD PTR $T9[rbp] - 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `NcGenUnusedLabelId'::`1'::dtor$2 -text$x ENDS -; COMDAT text$x -text$x SEGMENT -ReturnLabelId$ = 4 -$T4 = 228 -$T5 = 264 -$T6 = 312 -$T7 = 344 -$T8 = 392 -$T9 = 424 -$T10 = 472 -tv161 = 504 -tv81 = 504 -tv164 = 512 -tv130 = 520 -tv93 = 528 -tv166 = 536 -tv84 = 544 -tv171 = 552 -tv168 = 560 -tv153 = 568 -tv145 = 576 -tv172 = 584 -tv170 = 592 -tv151 = 600 -__$ArrayPad$ = 608 -Block$ = 656 -?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `NcGenUnusedLabelId'::`1'::dtor$3 - 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 48 8d 8d d8 01 - 00 00 lea rcx, QWORD PTR $T10[rbp] - 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `NcGenUnusedLabelId'::`1'::dtor$3 -text$x ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT text$x -text$x SEGMENT -ReturnLabelId$ = 4 -$T4 = 228 -$T5 = 264 -$T6 = 312 -$T7 = 344 -$T8 = 392 -$T9 = 424 -$T10 = 472 -tv161 = 504 -tv81 = 504 -tv164 = 512 -tv130 = 520 -tv93 = 528 -tv166 = 536 -tv84 = 544 -tv171 = 552 -tv168 = 560 -tv153 = 568 -tv145 = 576 -tv172 = 584 -tv170 = 592 -tv151 = 600 -__$ArrayPad$ = 608 -Block$ = 656 -?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `NcGenUnusedLabelId'::`1'::dtor$2 - 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 48 8d 8d a8 01 - 00 00 lea rcx, QWORD PTR $T9[rbp] - 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$2@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `NcGenUnusedLabelId'::`1'::dtor$2 -text$x ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT text$x -text$x SEGMENT -ReturnLabelId$ = 4 -$T4 = 228 -$T5 = 264 -$T6 = 312 -$T7 = 344 -$T8 = 392 -$T9 = 424 -$T10 = 472 -tv161 = 504 -tv81 = 504 -tv164 = 512 -tv130 = 520 -tv93 = 528 -tv166 = 536 -tv84 = 544 -tv171 = 552 -tv168 = 560 -tv153 = 568 -tv145 = 576 -tv172 = 584 -tv170 = 592 -tv151 = 600 -__$ArrayPad$ = 608 -Block$ = 656 -?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `NcGenUnusedLabelId'::`1'::dtor$3 - 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 48 8d 8d d8 01 + 000c8 e8 00 00 00 00 call ?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::begin + 000cd 48 89 85 18 02 + 00 00 mov QWORD PTR tv166[rbp], rax + 000d4 48 8b 85 18 02 + 00 00 mov rax, QWORD PTR tv166[rbp] + 000db 48 89 85 20 02 + 00 00 mov QWORD PTR tv84[rbp], rax + 000e2 4c 8d 4d 04 lea r9, QWORD PTR ReturnLabelId$[rbp] + 000e6 4c 8b 85 08 02 + 00 00 mov r8, QWORD PTR tv130[rbp] + 000ed 48 8b 95 20 02 + 00 00 mov rdx, QWORD PTR tv84[rbp] + 000f4 48 8d 8d a8 01 + 00 00 lea rcx, QWORD PTR $T9[rbp] + 000fb e8 00 00 00 00 call ??$find@V?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@K@std@@YA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@V10@V10@AEBK@Z ; std::find > >,unsigned long> + 00100 48 89 85 28 02 + 00 00 mov QWORD PTR tv168[rbp], rax + 00107 48 8b 85 28 02 + 00 00 mov rax, QWORD PTR tv168[rbp] + 0010e 48 89 85 30 02 + 00 00 mov QWORD PTR tv153[rbp], rax + 00115 48 8b 85 80 02 + 00 00 mov rax, QWORD PTR Block$[rbp] + 0011c 48 83 c0 10 add rax, 16 + 00120 48 89 85 38 02 + 00 00 mov QWORD PTR tv145[rbp], rax + 00127 48 8d 95 d8 01 + 00 00 lea rdx, QWORD PTR $T10[rbp] + 0012e 48 8b 8d 38 02 + 00 00 mov rcx, QWORD PTR tv145[rbp] + 00135 e8 00 00 00 00 call ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ; std::vector >::end + 0013a 48 89 85 40 02 + 00 00 mov QWORD PTR tv170[rbp], rax + 00141 48 8b 85 40 02 + 00 00 mov rax, QWORD PTR tv170[rbp] + 00148 48 89 85 48 02 + 00 00 mov QWORD PTR tv151[rbp], rax + 0014f 48 8b 95 48 02 + 00 00 mov rdx, QWORD PTR tv151[rbp] + 00156 48 8b 8d 30 02 + 00 00 mov rcx, QWORD PTR tv153[rbp] + 0015d e8 00 00 00 00 call ??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z ; std::_Vector_const_iterator > >::operator!= + 00162 88 85 e4 00 00 + 00 mov BYTE PTR $T4[rbp], al + 00168 48 8d 8d d8 01 00 00 lea rcx, QWORD PTR $T10[rbp] - 0001b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ - 00020 48 83 c4 28 add rsp, 40 ; 00000028H - 00024 5f pop rdi - 00025 5d pop rbp - 00026 c3 ret 0 -?dtor$3@?0??NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `NcGenUnusedLabelId'::`1'::dtor$3 -text$x ENDS + 0016f e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 00174 48 8d 8d a8 01 + 00 00 lea rcx, QWORD PTR $T9[rbp] + 0017b e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 00180 0f b6 85 e4 00 + 00 00 movzx eax, BYTE PTR $T4[rbp] + 00187 85 c0 test eax, eax + 00189 74 0e je SHORT $LN3@NcGenUnuse + +; 140 : ReturnLabelId = rand(); + + 0018b ff 15 00 00 00 + 00 call QWORD PTR __imp_rand + 00191 89 45 04 mov DWORD PTR ReturnLabelId$[rbp], eax + 00194 e9 b9 fe ff ff jmp $LN2@NcGenUnuse +$LN3@NcGenUnuse: + +; 141 : Block->LabelIds.push_back(ReturnLabelId); + + 00199 48 8b 85 80 02 + 00 00 mov rax, QWORD PTR Block$[rbp] + 001a0 48 83 c0 10 add rax, 16 + 001a4 48 89 85 f8 01 + 00 00 mov QWORD PTR tv161[rbp], rax + 001ab 48 8d 55 04 lea rdx, QWORD PTR ReturnLabelId$[rbp] + 001af 48 8b 8d f8 01 + 00 00 mov rcx, QWORD PTR tv161[rbp] + 001b6 e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back + +; 142 : return ReturnLabelId; + + 001bb 8b 45 04 mov eax, DWORD PTR ReturnLabelId$[rbp] + +; 143 : } + + 001be 8b f8 mov edi, eax + 001c0 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 001c4 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData + 001cb e8 00 00 00 00 call _RTC_CheckStackVars + 001d0 8b c7 mov eax, edi + 001d2 48 8b 8d 50 02 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 001d9 48 33 cd xor rcx, rbp + 001dc e8 00 00 00 00 call __security_check_cookie + 001e1 48 8d a5 68 02 + 00 00 lea rsp, QWORD PTR [rbp+616] + 001e8 5f pop rdi + 001e9 5d pop rbp + 001ea c3 ret 0 +?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcGenUnusedLabelId +_TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z _TEXT SEGMENT T$1 = 8 @@ -13468,81 +13036,75 @@ $LN8: 00010 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 00033 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 0003a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001c 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 147 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 0003f 48 8b 85 00 01 + 00028 48 8b 85 00 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00046 48 8b 00 mov rax, QWORD PTR [rax] - 00049 48 89 45 08 mov QWORD PTR T$1[rbp], rax - 0004d eb 0b jmp SHORT $LN4@NcChangeLa + 0002f 48 8b 00 mov rax, QWORD PTR [rax] + 00032 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 00036 eb 0b jmp SHORT $LN4@NcChangeLa $LN2@NcChangeLa: - 0004f 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00053 48 8b 00 mov rax, QWORD PTR [rax] - 00056 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 00038 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 0003c 48 8b 00 mov rax, QWORD PTR [rax] + 0003f 48 89 45 08 mov QWORD PTR T$1[rbp], rax $LN4@NcChangeLa: - 0005a 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 - 0005f 74 4e je SHORT $LN3@NcChangeLa - 00061 48 8b 85 00 01 + 00043 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 00048 74 4e je SHORT $LN3@NcChangeLa + 0004a 48 8b 85 00 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00068 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0006c 48 8b 00 mov rax, QWORD PTR [rax] - 0006f 48 39 45 08 cmp QWORD PTR T$1[rbp], rax - 00073 74 3a je SHORT $LN3@NcChangeLa + 00051 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00055 48 8b 00 mov rax, QWORD PTR [rax] + 00058 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 0005c 74 3a je SHORT $LN3@NcChangeLa ; 148 : { ; 149 : if (((T->Flags & CODE_FLAG_IS_LABEL) || (T->Flags & CODE_FLAG_IS_REL_JMP)) && T->Label == Original) - 00075 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00079 8b 40 18 mov eax, DWORD PTR [rax+24] - 0007c 83 e0 01 and eax, 1 - 0007f 85 c0 test eax, eax - 00081 75 0e jne SHORT $LN6@NcChangeLa - 00083 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00087 8b 40 18 mov eax, DWORD PTR [rax+24] - 0008a 83 e0 02 and eax, 2 - 0008d 85 c0 test eax, eax - 0008f 74 1c je SHORT $LN5@NcChangeLa + 0005e 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00062 8b 40 18 mov eax, DWORD PTR [rax+24] + 00065 83 e0 01 and eax, 1 + 00068 85 c0 test eax, eax + 0006a 75 0e jne SHORT $LN6@NcChangeLa + 0006c 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00070 8b 40 18 mov eax, DWORD PTR [rax+24] + 00073 83 e0 02 and eax, 2 + 00076 85 c0 test eax, eax + 00078 74 1c je SHORT $LN5@NcChangeLa $LN6@NcChangeLa: - 00091 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00095 8b 8d 08 01 00 + 0007a 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 0007e 8b 8d 08 01 00 00 mov ecx, DWORD PTR Original$[rbp] - 0009b 39 48 1c cmp DWORD PTR [rax+28], ecx - 0009e 75 0d jne SHORT $LN5@NcChangeLa + 00084 39 48 1c cmp DWORD PTR [rax+28], ecx + 00087 75 0d jne SHORT $LN5@NcChangeLa ; 150 : T->Label = New; - 000a0 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 000a4 8b 8d 10 01 00 + 00089 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 0008d 8b 8d 10 01 00 00 mov ecx, DWORD PTR New$[rbp] - 000aa 89 48 1c mov DWORD PTR [rax+28], ecx + 00093 89 48 1c mov DWORD PTR [rax+28], ecx $LN5@NcChangeLa: ; 151 : } - 000ad eb a0 jmp SHORT $LN2@NcChangeLa + 00096 eb a0 jmp SHORT $LN2@NcChangeLa $LN3@NcChangeLa: ; 152 : } - 000af 48 8d a5 e8 00 + 00098 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 000b6 5f pop rdi - 000b7 5d pop rbp - 000b8 c3 ret 0 + 0009f 5f pop rdi + 000a0 5d pop rbp + 000a1 c3 ret 0 ?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z ENDP ; NcChangeLabelId _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcCalcBlockSize@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT TotalSize$ = 4 @@ -13559,85 +13121,79 @@ $LN7: 00007 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 126 : ULONG TotalSize = 0; - 00036 c7 45 04 00 00 + 0001f c7 45 04 00 00 00 00 mov DWORD PTR TotalSize$[rbp], 0 ; 127 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 0003d 48 8b 85 20 01 + 00026 48 8b 85 20 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00044 48 8b 00 mov rax, QWORD PTR [rax] - 00047 48 89 45 28 mov QWORD PTR T$1[rbp], rax - 0004b eb 0b jmp SHORT $LN4@NcCalcBloc + 0002d 48 8b 00 mov rax, QWORD PTR [rax] + 00030 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 00034 eb 0b jmp SHORT $LN4@NcCalcBloc $LN2@NcCalcBloc: - 0004d 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00051 48 8b 00 mov rax, QWORD PTR [rax] - 00054 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 00036 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 0003a 48 8b 00 mov rax, QWORD PTR [rax] + 0003d 48 89 45 28 mov QWORD PTR T$1[rbp], rax $LN4@NcCalcBloc: - 00058 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 - 0005d 74 37 je SHORT $LN3@NcCalcBloc - 0005f 48 8b 85 20 01 + 00041 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 + 00046 74 37 je SHORT $LN3@NcCalcBloc + 00048 48 8b 85 20 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00066 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0006a 48 8b 00 mov rax, QWORD PTR [rax] - 0006d 48 39 45 28 cmp QWORD PTR T$1[rbp], rax - 00071 74 23 je SHORT $LN3@NcCalcBloc + 0004f 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00053 48 8b 00 mov rax, QWORD PTR [rax] + 00056 48 39 45 28 cmp QWORD PTR T$1[rbp], rax + 0005a 74 23 je SHORT $LN3@NcCalcBloc ; 128 : { ; 129 : if (T->Flags & CODE_FLAG_IS_LABEL) - 00073 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00077 8b 40 18 mov eax, DWORD PTR [rax+24] - 0007a 83 e0 01 and eax, 1 - 0007d 85 c0 test eax, eax - 0007f 74 02 je SHORT $LN5@NcCalcBloc + 0005c 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00060 8b 40 18 mov eax, DWORD PTR [rax+24] + 00063 83 e0 01 and eax, 1 + 00066 85 c0 test eax, eax + 00068 74 02 je SHORT $LN5@NcCalcBloc ; 130 : continue; - 00081 eb ca jmp SHORT $LN2@NcCalcBloc + 0006a eb ca jmp SHORT $LN2@NcCalcBloc $LN5@NcCalcBloc: ; 131 : TotalSize += T->RawDataSize; - 00083 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 00087 8b 40 28 mov eax, DWORD PTR [rax+40] - 0008a 8b 4d 04 mov ecx, DWORD PTR TotalSize$[rbp] - 0008d 03 c8 add ecx, eax - 0008f 8b c1 mov eax, ecx - 00091 89 45 04 mov DWORD PTR TotalSize$[rbp], eax + 0006c 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00070 8b 40 28 mov eax, DWORD PTR [rax+40] + 00073 8b 4d 04 mov ecx, DWORD PTR TotalSize$[rbp] + 00076 03 c8 add ecx, eax + 00078 8b c1 mov eax, ecx + 0007a 89 45 04 mov DWORD PTR TotalSize$[rbp], eax ; 132 : } - 00094 eb b7 jmp SHORT $LN2@NcCalcBloc + 0007d eb b7 jmp SHORT $LN2@NcCalcBloc $LN3@NcCalcBloc: ; 133 : return TotalSize; - 00096 8b 45 04 mov eax, DWORD PTR TotalSize$[rbp] + 0007f 8b 45 04 mov eax, DWORD PTR TotalSize$[rbp] ; 134 : } - 00099 48 8d a5 08 01 + 00082 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a0 5f pop rdi - 000a1 5d pop rbp - 000a2 c3 ret 0 + 00089 5f pop rdi + 0008a 5d pop rbp + 0008b c3 ret 0 ?NcCalcBlockSize@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcCalcBlockSize _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z _TEXT SEGMENT Link$ = 224 @@ -13652,72 +13208,66 @@ $LN6: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 115 : if (Link) - 00036 48 83 bd e0 00 + 0001f 48 83 bd e0 00 00 00 00 cmp QWORD PTR Link$[rbp], 0 - 0003e 74 4c je SHORT $LN2@NcUnlink + 00027 74 4c je SHORT $LN2@NcUnlink ; 116 : { ; 117 : if (Link->Next) - 00040 48 8b 85 e0 00 + 00029 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Link$[rbp] - 00047 48 83 38 00 cmp QWORD PTR [rax], 0 - 0004b 74 19 je SHORT $LN3@NcUnlink + 00030 48 83 38 00 cmp QWORD PTR [rax], 0 + 00034 74 19 je SHORT $LN3@NcUnlink ; 118 : Link->Next->Prev = Link->Prev; - 0004d 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Link$[rbp] - 00054 48 8b 00 mov rax, QWORD PTR [rax] - 00057 48 8b 8d e0 00 + 0003d 48 8b 00 mov rax, QWORD PTR [rax] + 00040 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 0005e 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 00062 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00047 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 0004b 48 89 48 08 mov QWORD PTR [rax+8], rcx $LN3@NcUnlink: ; 119 : if (Link->Prev) - 00066 48 8b 85 e0 00 + 0004f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Link$[rbp] - 0006d 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 00072 74 18 je SHORT $LN4@NcUnlink + 00056 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 0005b 74 18 je SHORT $LN4@NcUnlink ; 120 : Link->Prev->Next = Link->Next; - 00074 48 8b 85 e0 00 + 0005d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Link$[rbp] - 0007b 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0007f 48 8b 8d e0 00 + 00064 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00068 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 00086 48 8b 09 mov rcx, QWORD PTR [rcx] - 00089 48 89 08 mov QWORD PTR [rax], rcx + 0006f 48 8b 09 mov rcx, QWORD PTR [rcx] + 00072 48 89 08 mov QWORD PTR [rax], rcx $LN4@NcUnlink: $LN2@NcUnlink: ; 121 : } ; 122 : } - 0008c 48 8d a5 c8 00 + 00075 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00093 5f pop rdi - 00094 5d pop rbp - 00095 c3 ret 0 + 0007c 5f pop rdi + 0007d 5d pop rbp + 0007e c3 ret 0 ?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z ENDP ; NcUnlink _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z _TEXT SEGMENT Link1$ = 224 @@ -13734,78 +13284,72 @@ $LN5: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 103 : if (Link1) - 0003b 48 83 bd e0 00 + 00024 48 83 bd e0 00 00 00 00 cmp QWORD PTR Link1$[rbp], 0 - 00043 74 5c je SHORT $LN2@NcInsertLi + 0002c 74 5c je SHORT $LN2@NcInsertLi ; 104 : { ; 105 : Link2->Next = Link1; - 00045 48 8b 85 e8 00 + 0002e 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 0004c 48 8b 8d e0 00 + 00035 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Link1$[rbp] - 00053 48 89 08 mov QWORD PTR [rax], rcx + 0003c 48 89 08 mov QWORD PTR [rax], rcx ; 106 : Link2->Prev = Link1->Prev; - 00056 48 8b 85 e8 00 + 0003f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 0005d 48 8b 8d e0 00 + 00046 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Link1$[rbp] - 00064 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 00068 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0004d 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00051 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 107 : Link1->Prev = Link2; - 0006c 48 8b 85 e0 00 + 00055 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Link1$[rbp] - 00073 48 8b 8d e8 00 + 0005c 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link2$[rbp] - 0007a 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00063 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 108 : if (Link2->Prev) - 0007e 48 8b 85 e8 00 + 00067 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 00085 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 0008a 74 15 je SHORT $LN3@NcInsertLi + 0006e 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00073 74 15 je SHORT $LN3@NcInsertLi ; 109 : Link2->Prev->Next = Link2; - 0008c 48 8b 85 e8 00 + 00075 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 00093 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00097 48 8b 8d e8 00 + 0007c 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00080 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link2$[rbp] - 0009e 48 89 08 mov QWORD PTR [rax], rcx + 00087 48 89 08 mov QWORD PTR [rax], rcx $LN3@NcInsertLi: $LN2@NcInsertLi: ; 110 : } ; 111 : } - 000a1 48 8d a5 c8 00 + 0008a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 000a8 5f pop rdi - 000a9 5d pop rbp - 000aa c3 ret 0 + 00091 5f pop rdi + 00092 5d pop rbp + 00093 c3 ret 0 ?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z ENDP ; NcInsertLinkBefore _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z _TEXT SEGMENT Link1$ = 224 @@ -13822,78 +13366,72 @@ $LN5: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : if (Link1) - 0003b 48 83 bd e0 00 + 00024 48 83 bd e0 00 00 00 00 cmp QWORD PTR Link1$[rbp], 0 - 00043 74 59 je SHORT $LN2@NcInsertLi + 0002c 74 59 je SHORT $LN2@NcInsertLi ; 92 : { ; 93 : Link2->Prev = Link1; - 00045 48 8b 85 e8 00 + 0002e 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 0004c 48 8b 8d e0 00 + 00035 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Link1$[rbp] - 00053 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0003c 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 94 : Link2->Next = Link1->Next; - 00057 48 8b 85 e8 00 + 00040 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 0005e 48 8b 8d e0 00 + 00047 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Link1$[rbp] - 00065 48 8b 09 mov rcx, QWORD PTR [rcx] - 00068 48 89 08 mov QWORD PTR [rax], rcx + 0004e 48 8b 09 mov rcx, QWORD PTR [rcx] + 00051 48 89 08 mov QWORD PTR [rax], rcx ; 95 : Link1->Next = Link2; - 0006b 48 8b 85 e0 00 + 00054 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Link1$[rbp] - 00072 48 8b 8d e8 00 + 0005b 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link2$[rbp] - 00079 48 89 08 mov QWORD PTR [rax], rcx + 00062 48 89 08 mov QWORD PTR [rax], rcx ; 96 : if (Link2->Next) - 0007c 48 8b 85 e8 00 + 00065 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 00083 48 83 38 00 cmp QWORD PTR [rax], 0 - 00087 74 15 je SHORT $LN3@NcInsertLi + 0006c 48 83 38 00 cmp QWORD PTR [rax], 0 + 00070 74 15 je SHORT $LN3@NcInsertLi ; 97 : Link2->Next->Prev = Link2; - 00089 48 8b 85 e8 00 + 00072 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 00090 48 8b 00 mov rax, QWORD PTR [rax] - 00093 48 8b 8d e8 00 + 00079 48 8b 00 mov rax, QWORD PTR [rax] + 0007c 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link2$[rbp] - 0009a 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00083 48 89 48 08 mov QWORD PTR [rax+8], rcx $LN3@NcInsertLi: $LN2@NcInsertLi: ; 98 : } ; 99 : } - 0009e 48 8d a5 c8 00 + 00087 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 000a5 5f pop rdi - 000a6 5d pop rbp - 000a7 c3 ret 0 + 0008e 5f pop rdi + 0008f 5d pop rbp + 00090 c3 ret 0 ?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z ENDP ; NcInsertLinkAfter _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z _TEXT SEGMENT Block$ = 224 @@ -13910,117 +13448,111 @@ $LN7: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 71 : if (!Link) - 0003b 48 83 bd e8 00 + 00024 48 83 bd e8 00 00 00 00 cmp QWORD PTR Link$[rbp], 0 - 00043 75 05 jne SHORT $LN2@NcPrependT + 0002c 75 05 jne SHORT $LN2@NcPrependT ; 72 : return; - 00045 e9 9b 00 00 00 jmp $LN1@NcPrependT + 0002e e9 9b 00 00 00 jmp $LN1@NcPrependT $LN2@NcPrependT: ; 73 : ; 74 : Link->Block = Block; - 0004a 48 8b 85 e8 00 + 00033 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link$[rbp] - 00051 48 8b 8d e0 00 + 0003a 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 00058 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00041 48 89 48 10 mov QWORD PTR [rax+16], rcx ; 75 : Link->Next = Block->Start; - 0005c 48 8b 85 e8 00 + 00045 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link$[rbp] - 00063 48 8b 8d e0 00 + 0004c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 0006a 48 8b 09 mov rcx, QWORD PTR [rcx] - 0006d 48 89 08 mov QWORD PTR [rax], rcx + 00053 48 8b 09 mov rcx, QWORD PTR [rcx] + 00056 48 89 08 mov QWORD PTR [rax], rcx ; 76 : Link->Prev = NULL; - 00070 48 8b 85 e8 00 + 00059 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link$[rbp] - 00077 48 c7 40 08 00 + 00060 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 ; 77 : ; 78 : if (!Block->End || !Block->Start) - 0007f 48 8b 85 e0 00 + 00068 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 00086 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 0008b 74 0d je SHORT $LN5@NcPrependT - 0008d 48 8b 85 e0 00 + 0006f 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00074 74 0d je SHORT $LN5@NcPrependT + 00076 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 00094 48 83 38 00 cmp QWORD PTR [rax], 0 - 00098 75 25 jne SHORT $LN3@NcPrependT + 0007d 48 83 38 00 cmp QWORD PTR [rax], 0 + 00081 75 25 jne SHORT $LN3@NcPrependT $LN5@NcPrependT: ; 79 : { ; 80 : Block->Start = Block->End = Link; - 0009a 48 8b 85 e0 00 + 00083 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 000a1 48 8b 8d e8 00 + 0008a 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 000a8 48 89 48 08 mov QWORD PTR [rax+8], rcx - 000ac 48 8b 85 e0 00 + 00091 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00095 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 000b3 48 8b 8d e8 00 + 0009c 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 000ba 48 89 08 mov QWORD PTR [rax], rcx + 000a3 48 89 08 mov QWORD PTR [rax], rcx ; 81 : } - 000bd eb 26 jmp SHORT $LN4@NcPrependT + 000a6 eb 26 jmp SHORT $LN4@NcPrependT $LN3@NcPrependT: ; 82 : else ; 83 : { ; 84 : Block->Start->Prev = Link; - 000bf 48 8b 85 e0 00 + 000a8 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 000c6 48 8b 00 mov rax, QWORD PTR [rax] - 000c9 48 8b 8d e8 00 + 000af 48 8b 00 mov rax, QWORD PTR [rax] + 000b2 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 000d0 48 89 48 08 mov QWORD PTR [rax+8], rcx + 000b9 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 85 : Block->Start = Link; - 000d4 48 8b 85 e0 00 + 000bd 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 000db 48 8b 8d e8 00 + 000c4 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 000e2 48 89 08 mov QWORD PTR [rax], rcx + 000cb 48 89 08 mov QWORD PTR [rax], rcx $LN4@NcPrependT: $LN1@NcPrependT: ; 86 : } ; 87 : } - 000e5 48 8d a5 c8 00 + 000ce 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 000ec 5f pop rdi - 000ed 5d pop rbp - 000ee c3 ret 0 + 000d5 5f pop rdi + 000d6 5d pop rbp + 000d7 c3 ret 0 ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ENDP ; NcPrependToBlock _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z _TEXT SEGMENT Block$ = 224 @@ -14037,117 +13569,111 @@ $LN7: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 51 : if (!Link) - 0003b 48 83 bd e8 00 + 00024 48 83 bd e8 00 00 00 00 cmp QWORD PTR Link$[rbp], 0 - 00043 75 05 jne SHORT $LN2@NcAppendTo + 0002c 75 05 jne SHORT $LN2@NcAppendTo ; 52 : return; - 00045 e9 9d 00 00 00 jmp $LN1@NcAppendTo + 0002e e9 9d 00 00 00 jmp $LN1@NcAppendTo $LN2@NcAppendTo: ; 53 : ; 54 : Link->Block = Block; - 0004a 48 8b 85 e8 00 + 00033 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link$[rbp] - 00051 48 8b 8d e0 00 + 0003a 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 00058 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00041 48 89 48 10 mov QWORD PTR [rax+16], rcx ; 55 : Link->Prev = Block->End; - 0005c 48 8b 85 e8 00 + 00045 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link$[rbp] - 00063 48 8b 8d e0 00 + 0004c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 0006a 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 0006e 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00053 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00057 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 56 : Link->Next = NULL; - 00072 48 8b 85 e8 00 + 0005b 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link$[rbp] - 00079 48 c7 00 00 00 + 00062 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 ; 57 : ; 58 : if (!Block->End || !Block->Start) - 00080 48 8b 85 e0 00 + 00069 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 00087 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 0008c 74 0d je SHORT $LN5@NcAppendTo - 0008e 48 8b 85 e0 00 + 00070 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00075 74 0d je SHORT $LN5@NcAppendTo + 00077 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 00095 48 83 38 00 cmp QWORD PTR [rax], 0 - 00099 75 25 jne SHORT $LN3@NcAppendTo + 0007e 48 83 38 00 cmp QWORD PTR [rax], 0 + 00082 75 25 jne SHORT $LN3@NcAppendTo $LN5@NcAppendTo: ; 59 : { ; 60 : Block->Start = Block->End = Link; - 0009b 48 8b 85 e0 00 + 00084 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 000a2 48 8b 8d e8 00 + 0008b 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 000a9 48 89 48 08 mov QWORD PTR [rax+8], rcx - 000ad 48 8b 85 e0 00 + 00092 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00096 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 000b4 48 8b 8d e8 00 + 0009d 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 000bb 48 89 08 mov QWORD PTR [rax], rcx + 000a4 48 89 08 mov QWORD PTR [rax], rcx ; 61 : } - 000be eb 27 jmp SHORT $LN4@NcAppendTo + 000a7 eb 27 jmp SHORT $LN4@NcAppendTo $LN3@NcAppendTo: ; 62 : else ; 63 : { ; 64 : Block->End->Next = Link; - 000c0 48 8b 85 e0 00 + 000a9 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 000c7 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 000cb 48 8b 8d e8 00 + 000b0 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 000b4 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 000d2 48 89 08 mov QWORD PTR [rax], rcx + 000bb 48 89 08 mov QWORD PTR [rax], rcx ; 65 : Block->End = Link; - 000d5 48 8b 85 e0 00 + 000be 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 000dc 48 8b 8d e8 00 + 000c5 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 000e3 48 89 48 08 mov QWORD PTR [rax+8], rcx + 000cc 48 89 48 08 mov QWORD PTR [rax+8], rcx $LN4@NcAppendTo: $LN1@NcAppendTo: ; 66 : } ; 67 : } - 000e7 48 8d a5 c8 00 + 000d0 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 000ee 5f pop rdi - 000ef 5d pop rbp - 000f0 c3 ret 0 + 000d7 5f pop rdi + 000d8 5d pop rbp + 000d9 c3 ret 0 ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ENDP ; NcAppendToBlock _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ??0_NATIVE_CODE_BLOCK@@QEAA@XZ _TEXT SEGMENT this$ = 224 @@ -14162,59 +13688,53 @@ $LN4: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 83 c0 10 add rax, 16 - 00041 48 8b c8 mov rcx, rax - 00044 e8 00 00 00 00 call ??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::vector > + 00026 48 83 c0 10 add rax, 16 + 0002a 48 8b c8 mov rcx, rax + 0002d e8 00 00 00 00 call ??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ; std::vector >::vector > ; 45 : Start = End = NULL; - 00049 48 8b 85 e0 00 + 00032 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00050 48 c7 40 08 00 + 00039 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 00058 48 8b 85 e0 00 + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 c7 00 00 00 + 00048 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 ; 46 : LabelIds.clear(); - 00066 48 8b 85 e0 00 + 0004f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0006d 48 83 c0 10 add rax, 16 - 00071 48 8b c8 mov rcx, rax - 00074 e8 00 00 00 00 call ?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ ; std::vector >::clear + 00056 48 83 c0 10 add rax, 16 + 0005a 48 8b c8 mov rcx, rax + 0005d e8 00 00 00 00 call ?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ ; std::vector >::clear ; 47 : } - 00079 48 8b 85 e0 00 + 00062 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00080 48 8d a5 c8 00 + 00069 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00087 5f pop rdi - 00088 5d pop rbp - 00089 c3 ret 0 + 00070 5f pop rdi + 00071 5d pop rbp + 00072 c3 ret 0 ??0_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.27.29110\include\xmemory +; 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@@QEBAAEBV?$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@@QEBAAEBV?$allocator@K@2@XZ PROC ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first, COMDAT -; 1347 : constexpr const _Ty1& _Get_first() const noexcept { +; 1381 : constexpr const _Ty1& _Get_first() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -14223,38 +13743,32 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1348 : return *this; + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 1382 : return *this; + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] -; 1349 : } +; 1383 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 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@@QEBAAEBV?$allocator@K@2@XZ ENDP ; std::_Compressed_pair,std::_Vector_val >,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.27.29110\include\xmemory +; 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::_Vector_val >,1>::_Get_first, COMDAT -; 1343 : constexpr _Ty1& _Get_first() noexcept { +; 1377 : constexpr _Ty1& _Get_first() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -14263,38 +13777,32 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1344 : return *this; + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 1378 : return *this; + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] -; 1345 : } +; 1379 : } - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 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::_Vector_val >,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.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 ??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ PROC ; std::_Vector_val >::_Vector_val >, COMDAT -; 375 : _Vector_val() noexcept : _Myfirst(), _Mylast(), _Myend() {} +; 401 : _CONSTEXPR20_CONTAINER _Vector_val() noexcept : _Myfirst(), _Mylast(), _Myend() {} $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -14303,47 +13811,41 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 8d e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003d e8 00 00 00 00 call ??0_Container_base12@std@@QEAA@XZ ; std::_Container_base12::_Container_base12 - 00042 48 8b 85 e0 00 + 00026 e8 00 00 00 00 call ??0_Container_base12@std@@QEAA@XZ ; std::_Container_base12::_Container_base12 + 0002b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00049 48 c7 40 08 00 + 00032 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 00051 48 8b 85 e0 00 + 0003a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00058 48 c7 40 10 00 + 00041 48 c7 40 10 00 00 00 00 mov QWORD PTR [rax+16], 0 - 00060 48 8b 85 e0 00 + 00049 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00067 48 c7 40 18 00 + 00050 48 c7 40 18 00 00 00 00 mov QWORD PTR [rax+24], 0 - 0006f 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00076 48 8d a5 c8 00 + 0005f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0007d 5f pop rdi - 0007e 5d pop rbp - 0007f c3 ret 0 + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 ??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ ENDP ; std::_Vector_val >::_Vector_val > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; 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@@AEBAAEBV?$allocator@K@2@XZ _TEXT SEGMENT this$ = 224 ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ PROC ; std::vector >::_Getal, COMDAT -; 1735 : const _Alty& _Getal() const noexcept { +; 1821 : _NODISCARD _CONSTEXPR20_CONTAINER const _Alty& _Getal() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -14352,41 +13854,34 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1736 : return _Mypair._Get_first(); + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 1822 : return _Mypair._Get_first(); + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8b c8 mov rcx, rax - 00040 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@@QEBAAEBV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first - 00045 90 npad 1 + 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@@QEBAAEBV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first -; 1737 : } +; 1823 : } - 00046 48 8d a5 c8 00 + 0002e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004d 5f pop rdi - 0004e 5d pop rbp - 0004f c3 ret 0 + 00035 5f pop rdi + 00036 5d pop rbp + 00037 c3 ret 0 ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ ENDP ; std::vector >::_Getal _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; 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 >::_Getal, COMDAT -; 1731 : _Alty& _Getal() noexcept { +; 1817 : _NODISCARD _CONSTEXPR20_CONTAINER _Alty& _Getal() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -14395,180 +13890,321 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1732 : return _Mypair._Get_first(); + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 1818 : return _Mypair._Get_first(); + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8b c8 mov rcx, rax - 00040 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::_Vector_val >,1>::_Get_first - 00045 90 npad 1 + 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::_Vector_val >,1>::_Get_first -; 1733 : } +; 1819 : } - 00046 48 8d a5 c8 00 + 0002e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004d 5f pop rdi - 0004e 5d pop rbp - 0004f c3 ret 0 + 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 >::_Getal _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z _TEXT SEGMENT -_Lock$ = 4 -_Pnext$ = 40 -_Pnextptr$4 = 72 -__$ArrayPad$ = 280 -this$ = 320 -_First$ = 328 -_Last$ = 336 +this$ = 224 +_First$ = 232 +_Last$ = 240 ?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z PROC ; std::vector >::_Orphan_range, COMDAT -; 1711 : void _Orphan_range(pointer _First, pointer _Last) const { // orphan iterators within specified (inclusive) range +; 1802 : _CONSTEXPR20_CONTAINER void _Orphan_range(pointer _First, pointer _Last) const { -$LN9: +$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 48 01 - 00 00 sub rsp, 328 ; 00000148H + 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 + +; 1803 : // orphan iterators within specified (inclusive) range +; 1804 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 1805 : if (_STD is_constant_evaluated()) { +; 1806 : _Orphan_range_unlocked(_First, _Last); +; 1807 : } else +; 1808 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 1809 : { +; 1810 : _Orphan_range_locked(_First, _Last); + + 00029 4c 8b 85 f0 00 + 00 00 mov r8, QWORD PTR _Last$[rbp] + 00030 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _First$[rbp] + 00037 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0003e e8 00 00 00 00 call ?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range_locked + +; 1811 : } +; 1812 : } + + 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 +?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ENDP ; std::vector >::_Orphan_range +_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 ?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z +_TEXT SEGMENT +_Lock$ = 4 +__$ArrayPad$ = 216 +this$ = 256 +_First$ = 264 +_Last$ = 272 +?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z PROC ; std::vector >::_Orphan_range_locked, COMDAT + +; 1797 : void _Orphan_range_locked(pointer _First, pointer _Last) const { + +$LN4: + 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 08 01 + 00 00 sub rsp, 264 ; 00000108H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 68 - 01 00 00 mov rcx, QWORD PTR [rsp+360] - 00034 48 8b 05 00 00 + 0001d 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00022 b9 0a 00 00 00 mov ecx, 10 + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 18 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 d8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1712 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1713 : _Lockit _Lock(_LOCK_DEBUG); +; 1798 : _Lockit _Lock(_LOCK_DEBUG); - 00051 ba 03 00 00 00 mov edx, 3 - 00056 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] - 0005a ff 15 00 00 00 + 00053 ba 03 00 00 00 mov edx, 3 + 00058 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 0005c ff 15 00 00 00 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z + 00062 90 npad 1 -; 1714 : -; 1715 : _Iterator_base12** _Pnext = &_Mypair._Myval2._Myproxy->_Myfirstiter; +; 1799 : _Orphan_range_unlocked(_First, _Last); - 00060 48 8b 85 40 01 + 00063 4c 8b 85 10 01 + 00 00 mov r8, QWORD PTR _Last$[rbp] + 0006a 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _First$[rbp] + 00071 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00078 e8 00 00 00 00 call ?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range_unlocked + 0007d 90 npad 1 + +; 1800 : } + + 0007e 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 00082 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 00088 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0008c 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcFrameData + 00093 e8 00 00 00 00 call _RTC_CheckStackVars + 00098 48 8b 8d d8 00 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 0009f 48 33 cd xor rcx, rbp + 000a2 e8 00 00 00 00 call __security_check_cookie + 000a7 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 000ae 5f pop rdi + 000af 5d pop rbp + 000b0 c3 ret 0 +?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ENDP ; std::vector >::_Orphan_range_locked +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +_Lock$ = 4 +__$ArrayPad$ = 216 +this$ = 256 +_First$ = 264 +_Last$ = 272 +?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA PROC ; `std::vector >::_Orphan_range_locked'::`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 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 00018 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 0001e 48 83 c4 28 add rsp, 40 ; 00000028H + 00022 5f pop rdi + 00023 5d pop rbp + 00024 c3 ret 0 +?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA ENDP ; `std::vector >::_Orphan_range_locked'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +_Lock$ = 4 +__$ArrayPad$ = 216 +this$ = 256 +_First$ = 264 +_Last$ = 272 +?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA PROC ; `std::vector >::_Orphan_range_locked'::`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 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 00018 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 0001e 48 83 c4 28 add rsp, 40 ; 00000028H + 00022 5f pop rdi + 00023 5d pop rbp + 00024 c3 ret 0 +?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA ENDP ; `std::vector >::_Orphan_range_locked'::`1'::dtor$0 +text$x 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 ?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z +_TEXT SEGMENT +_Pnext$ = 8 +_Pnextptr$1 = 40 +_Temp$2 = 72 +_Temp$3 = 104 +this$ = 352 +_First$ = 360 +_Last$ = 368 +?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z PROC ; std::vector >::_Orphan_range_unlocked, COMDAT + +; 1782 : _CONSTEXPR20_CONTAINER void _Orphan_range_unlocked(pointer _First, pointer _Last) const { + +$LN8: + 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 68 01 + 00 00 sub rsp, 360 ; 00000168H + 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 + +; 1783 : _Iterator_base12** _Pnext = &_Mypair._Myval2._Myproxy->_Myfirstiter; + + 00029 48 8b 85 60 01 00 00 mov rax, QWORD PTR this$[rbp] - 00067 48 8b 00 mov rax, QWORD PTR [rax] - 0006a 48 83 c0 08 add rax, 8 - 0006e 48 89 45 28 mov QWORD PTR _Pnext$[rbp], rax + 00030 48 8b 00 mov rax, QWORD PTR [rax] + 00033 48 83 c0 08 add rax, 8 + 00037 48 89 45 08 mov QWORD PTR _Pnext$[rbp], rax $LN2@Orphan_ran: -; 1716 : while (*_Pnext) { +; 1784 : while (*_Pnext) { - 00072 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] - 00076 48 83 38 00 cmp QWORD PTR [rax], 0 - 0007a 74 5c je SHORT $LN3@Orphan_ran + 0003b 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] + 0003f 48 83 38 00 cmp QWORD PTR [rax], 0 + 00043 74 69 je SHORT $LN3@Orphan_ran -; 1717 : const auto _Pnextptr = static_cast(**_Pnext)._Ptr; +; 1785 : const auto _Pnextptr = static_cast(**_Pnext)._Ptr; - 0007c 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] - 00080 48 8b 00 mov rax, QWORD PTR [rax] - 00083 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 00087 48 89 45 48 mov QWORD PTR _Pnextptr$4[rbp], rax + 00045 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] + 00049 48 8b 00 mov rax, QWORD PTR [rax] + 0004c 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 00050 48 89 45 28 mov QWORD PTR _Pnextptr$1[rbp], rax -; 1718 : if (_Pnextptr < _First || _Last < _Pnextptr) { // skip the iterator +; 1786 : if (_Pnextptr < _First || _Last < _Pnextptr) { // skip the iterator - 0008b 48 8b 85 48 01 + 00054 48 8b 85 68 01 00 00 mov rax, QWORD PTR _First$[rbp] - 00092 48 39 45 48 cmp QWORD PTR _Pnextptr$4[rbp], rax - 00096 72 0d jb SHORT $LN6@Orphan_ran - 00098 48 8b 45 48 mov rax, QWORD PTR _Pnextptr$4[rbp] - 0009c 48 39 85 50 01 + 0005b 48 39 45 28 cmp QWORD PTR _Pnextptr$1[rbp], rax + 0005f 72 0d jb SHORT $LN6@Orphan_ran + 00061 48 8b 45 28 mov rax, QWORD PTR _Pnextptr$1[rbp] + 00065 48 39 85 70 01 00 00 cmp QWORD PTR _Last$[rbp], rax - 000a3 73 11 jae SHORT $LN4@Orphan_ran + 0006c 73 19 jae SHORT $LN4@Orphan_ran $LN6@Orphan_ran: -; 1719 : _Pnext = &(*_Pnext)->_Mynextiter; +; 1787 : const auto _Temp = *_Pnext; // TRANSITION, VSO-1269037 + + 0006e 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] + 00072 48 8b 00 mov rax, QWORD PTR [rax] + 00075 48 89 45 48 mov QWORD PTR _Temp$2[rbp], rax - 000a5 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] - 000a9 48 8b 00 mov rax, QWORD PTR [rax] - 000ac 48 83 c0 08 add rax, 8 - 000b0 48 89 45 28 mov QWORD PTR _Pnext$[rbp], rax +; 1788 : _Pnext = &_Temp->_Mynextiter; -; 1720 : } else { // orphan the iterator + 00079 48 8b 45 48 mov rax, QWORD PTR _Temp$2[rbp] + 0007d 48 83 c0 08 add rax, 8 + 00081 48 89 45 08 mov QWORD PTR _Pnext$[rbp], rax - 000b4 eb 20 jmp SHORT $LN5@Orphan_ran +; 1789 : } else { // orphan the iterator + + 00085 eb 25 jmp SHORT $LN5@Orphan_ran $LN4@Orphan_ran: -; 1721 : (*_Pnext)->_Myproxy = nullptr; +; 1790 : const auto _Temp = *_Pnext; // TRANSITION, VSO-1269037 - 000b6 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] - 000ba 48 8b 00 mov rax, QWORD PTR [rax] - 000bd 48 c7 00 00 00 - 00 00 mov QWORD PTR [rax], 0 + 00087 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] + 0008b 48 8b 00 mov rax, QWORD PTR [rax] + 0008e 48 89 45 68 mov QWORD PTR _Temp$3[rbp], rax -; 1722 : *_Pnext = (*_Pnext)->_Mynextiter; +; 1791 : _Temp->_Myproxy = nullptr; - 000c4 48 8b 45 28 mov rax, QWORD PTR _Pnext$[rbp] - 000c8 48 8b 00 mov rax, QWORD PTR [rax] - 000cb 48 8b 4d 28 mov rcx, QWORD PTR _Pnext$[rbp] - 000cf 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 000d3 48 89 01 mov QWORD PTR [rcx], rax -$LN5@Orphan_ran: + 00092 48 8b 45 68 mov rax, QWORD PTR _Temp$3[rbp] + 00096 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 -; 1723 : } -; 1724 : } +; 1792 : *_Pnext = _Temp->_Mynextiter; - 000d6 eb 9a jmp SHORT $LN2@Orphan_ran -$LN3@Orphan_ran: + 0009d 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] + 000a1 48 8b 4d 68 mov rcx, QWORD PTR _Temp$3[rbp] + 000a5 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 000a9 48 89 08 mov QWORD PTR [rax], rcx +$LN5@Orphan_ran: -; 1725 : #else // ^^^ _ITERATOR_DEBUG_LEVEL == 2 ^^^ // vvv _ITERATOR_DEBUG_LEVEL != 2 vvv -; 1726 : (void) _First; -; 1727 : (void) _Last; -; 1728 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1729 : } +; 1793 : } +; 1794 : } - 000d8 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] - 000dc ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ - 000e2 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000e6 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcFrameData - 000ed e8 00 00 00 00 call _RTC_CheckStackVars - 000f2 48 8b 8d 18 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000f9 48 33 cd xor rcx, rbp - 000fc e8 00 00 00 00 call __security_check_cookie - 00101 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 00108 5f pop rdi - 00109 5d pop rbp - 0010a c3 ret 0 -?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ENDP ; std::vector >::_Orphan_range + 000ac eb 8d jmp SHORT $LN2@Orphan_ran +$LN3@Orphan_ran: + +; 1795 : } + + 000ae 48 8d a5 48 01 + 00 00 lea rsp, QWORD PTR [rbp+328] + 000b5 5f pop rdi + 000b6 5d pop rbp + 000b7 c3 ret 0 +?_Orphan_range_unlocked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ENDP ; std::vector >::_Orphan_range_unlocked _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ _TEXT SEGMENT ?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ PROC ; std::vector >::_Xlength, COMDAT -; 1703 : [[noreturn]] static void _Xlength() { +; 1773 : [[noreturn]] static void _Xlength() { $LN3: 00000 40 55 push rbp @@ -14576,32 +14212,28 @@ $LN3: 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8b fc mov rdi, rsp - 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1704 : _Xlength_error("vector too long"); +; 1774 : _Xlength_error("vector too long"); - 0002a 48 8d 0d 00 00 + 0001b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@FOIKENOD@vector?5too?5long@ - 00031 e8 00 00 00 00 call ?_Xlength_error@std@@YAXPEBD@Z ; std::_Xlength_error + 00022 e8 00 00 00 00 call ?_Xlength_error@std@@YAXPEBD@Z ; std::_Xlength_error $LN2@Xlength: -; 1705 : } +; 1775 : } - 00036 48 8d a5 c8 00 + 00027 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003d 5f pop rdi - 0003e 5d pop rbp - 0003f c3 ret 0 + 0002e 5f pop rdi + 0002f 5d pop rbp + 00030 c3 ret 0 ?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ ENDP ; std::vector >::_Xlength _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z _TEXT SEGMENT _My_data$ = 8 @@ -14617,7 +14249,7 @@ _Newsize$ = 384 _Newcapacity$ = 392 ?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z PROC ; std::vector >::_Change_array, COMDAT -; 1666 : void _Change_array(const pointer _Newvec, const size_type _Newsize, const size_type _Newcapacity) { +; 1736 : const pointer _Newvec, const size_type _Newsize, const size_type _Newcapacity) { $LN4: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 @@ -14629,241 +14261,229 @@ $LN4: 00016 48 81 ec 78 01 00 00 sub rsp, 376 ; 00000178H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8b fc mov rdi, rsp - 00025 b9 5e 00 00 00 mov ecx, 94 ; 0000005eH - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 98 - 01 00 00 mov rcx, QWORD PTR [rsp+408] - 00039 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1667 : // orphan all iterators, discard old array, acquire new array -; 1668 : auto& _My_data = _Mypair._Myval2; +; 1737 : // orphan all iterators, discard old array, acquire new array +; 1738 : auto& _My_data = _Mypair._Myval2; - 00045 48 8b 85 70 01 + 0002e 48 8b 85 70 01 00 00 mov rax, QWORD PTR this$[rbp] - 0004c 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 00035 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1669 : pointer& _Myfirst = _My_data._Myfirst; +; 1739 : pointer& _Myfirst = _My_data._Myfirst; - 00050 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00054 48 83 c0 08 add rax, 8 - 00058 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax + 00039 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0003d 48 83 c0 08 add rax, 8 + 00041 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax -; 1670 : pointer& _Mylast = _My_data._Mylast; +; 1740 : pointer& _Mylast = _My_data._Mylast; - 0005c 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00060 48 83 c0 10 add rax, 16 - 00064 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax + 00045 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00049 48 83 c0 10 add rax, 16 + 0004d 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax -; 1671 : pointer& _Myend = _My_data._Myend; +; 1741 : pointer& _Myend = _My_data._Myend; - 00068 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0006c 48 83 c0 18 add rax, 24 - 00070 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax + 00051 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00055 48 83 c0 18 add rax, 24 + 00059 48 89 45 68 mov QWORD PTR _Myend$[rbp], rax -; 1672 : -; 1673 : _My_data._Orphan_all(); +; 1742 : +; 1743 : _My_data._Orphan_all(); - 00074 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 00078 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all + 0005d 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00061 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all -; 1674 : -; 1675 : if (_Myfirst) { // destroy and deallocate old array +; 1744 : +; 1745 : if (_Myfirst) { // destroy and deallocate old array - 0007d 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 00081 48 83 38 00 cmp QWORD PTR [rax], 0 - 00085 74 71 je SHORT $LN2@Change_arr + 00066 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 0006a 48 83 38 00 cmp QWORD PTR [rax], 0 + 0006e 74 71 je SHORT $LN2@Change_arr -; 1676 : _Destroy(_Myfirst, _Mylast); +; 1746 : _Destroy(_Myfirst, _Mylast); - 00087 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 0008b 4c 8b 00 mov r8, QWORD PTR [rax] - 0008e 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 00092 48 8b 10 mov rdx, QWORD PTR [rax] - 00095 48 8b 8d 70 01 + 00070 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 00074 4c 8b 00 mov r8, QWORD PTR [rax] + 00077 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 0007b 48 8b 10 mov rdx, QWORD PTR [rax] + 0007e 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0009c e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy + 00085 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy -; 1677 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); +; 1747 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); - 000a1 48 8b 8d 70 01 + 0008a 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000a8 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 000ad 48 89 85 38 01 + 00091 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 00096 48 89 85 38 01 00 00 mov QWORD PTR tv90[rbp], rax - 000b4 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] - 000b8 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] - 000bc 48 8b 09 mov rcx, QWORD PTR [rcx] - 000bf 48 8b 00 mov rax, QWORD PTR [rax] - 000c2 48 2b c1 sub rax, rcx - 000c5 48 c1 f8 02 sar rax, 2 - 000c9 48 89 85 40 01 + 0009d 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 000a1 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] + 000a5 48 8b 09 mov rcx, QWORD PTR [rcx] + 000a8 48 8b 00 mov rax, QWORD PTR [rax] + 000ab 48 2b c1 sub rax, rcx + 000ae 48 c1 f8 02 sar rax, 2 + 000b2 48 89 85 40 01 00 00 mov QWORD PTR tv88[rbp], rax - 000d0 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 000d4 48 8b 00 mov rax, QWORD PTR [rax] - 000d7 48 89 85 48 01 + 000b9 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000bd 48 8b 00 mov rax, QWORD PTR [rax] + 000c0 48 89 85 48 01 00 00 mov QWORD PTR tv86[rbp], rax - 000de 4c 8b 85 40 01 + 000c7 4c 8b 85 40 01 00 00 mov r8, QWORD PTR tv88[rbp] - 000e5 48 8b 95 48 01 + 000ce 48 8b 95 48 01 00 00 mov rdx, QWORD PTR tv86[rbp] - 000ec 48 8b 8d 38 01 + 000d5 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR tv90[rbp] - 000f3 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate + 000dc e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate $LN2@Change_arr: -; 1678 : } -; 1679 : -; 1680 : _Myfirst = _Newvec; +; 1748 : } +; 1749 : +; 1750 : _Myfirst = _Newvec; - 000f8 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 000fc 48 8b 8d 78 01 + 000e1 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000e5 48 8b 8d 78 01 00 00 mov rcx, QWORD PTR _Newvec$[rbp] - 00103 48 89 08 mov QWORD PTR [rax], rcx + 000ec 48 89 08 mov QWORD PTR [rax], rcx -; 1681 : _Mylast = _Newvec + _Newsize; +; 1751 : _Mylast = _Newvec + _Newsize; - 00106 48 8b 85 78 01 + 000ef 48 8b 85 78 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 0010d 48 8b 8d 80 01 + 000f6 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR _Newsize$[rbp] - 00114 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] - 00118 48 8b 4d 48 mov rcx, QWORD PTR _Mylast$[rbp] - 0011c 48 89 01 mov QWORD PTR [rcx], rax + 000fd 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] + 00101 48 8b 4d 48 mov rcx, QWORD PTR _Mylast$[rbp] + 00105 48 89 01 mov QWORD PTR [rcx], rax -; 1682 : _Myend = _Newvec + _Newcapacity; +; 1752 : _Myend = _Newvec + _Newcapacity; - 0011f 48 8b 85 78 01 + 00108 48 8b 85 78 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 00126 48 8b 8d 88 01 + 0010f 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR _Newcapacity$[rbp] - 0012d 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] - 00131 48 8b 4d 68 mov rcx, QWORD PTR _Myend$[rbp] - 00135 48 89 01 mov QWORD PTR [rcx], rax + 00116 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] + 0011a 48 8b 4d 68 mov rcx, QWORD PTR _Myend$[rbp] + 0011e 48 89 01 mov QWORD PTR [rcx], rax -; 1683 : } +; 1753 : } - 00138 48 8d a5 58 01 + 00121 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 0013f 5f pop rdi - 00140 5d pop rbp - 00141 c3 ret 0 + 00128 5f pop rdi + 00129 5d pop rbp + 0012a c3 ret 0 ?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z ENDP ; std::vector >::_Change_array _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z _TEXT SEGMENT _Oldcapacity$ = 8 -_Geometric$ = 40 -tv67 = 248 -this$ = 288 -_Newsize$ = 296 +_Max$ = 40 +_Geometric$ = 72 +this$ = 320 +_Newsize$ = 328 ?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z PROC ; std::vector >::_Calculate_growth, COMDAT -; 1615 : size_type _Calculate_growth(const size_type _Newsize) const { +; 1683 : _CONSTEXPR20_CONTAINER size_type _Calculate_growth(const size_type _Newsize) const { $LN5: 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 28 01 - 00 00 sub rsp, 296 ; 00000128H + 0000c 48 81 ec 48 01 + 00 00 sub rsp, 328 ; 00000148H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1616 : // given _Oldcapacity and _Newsize, calculate geometric growth -; 1617 : const size_type _Oldcapacity = capacity(); - - 0003b 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00042 e8 00 00 00 00 call ?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::capacity - 00047 48 89 45 08 mov QWORD PTR _Oldcapacity$[rbp], rax + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1618 : -; 1619 : if (_Oldcapacity > max_size() - _Oldcapacity / 2) { +; 1684 : // given _Oldcapacity and _Newsize, calculate geometric growth +; 1685 : const size_type _Oldcapacity = capacity(); - 0004b 48 8b 8d 20 01 + 00024 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00052 e8 00 00 00 00 call ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::max_size - 00057 48 89 85 f8 00 - 00 00 mov QWORD PTR tv67[rbp], rax - 0005e 33 d2 xor edx, edx - 00060 48 8b 45 08 mov rax, QWORD PTR _Oldcapacity$[rbp] - 00064 b9 02 00 00 00 mov ecx, 2 - 00069 48 f7 f1 div rcx - 0006c 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR tv67[rbp] - 00073 48 2b c8 sub rcx, rax - 00076 48 8b c1 mov rax, rcx - 00079 48 39 45 08 cmp QWORD PTR _Oldcapacity$[rbp], rax - 0007d 76 09 jbe SHORT $LN2@Calculate_ + 0002b e8 00 00 00 00 call ?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::capacity + 00030 48 89 45 08 mov QWORD PTR _Oldcapacity$[rbp], rax -; 1620 : return _Newsize; // geometric growth would overflow +; 1686 : const auto _Max = max_size(); - 0007f 48 8b 85 28 01 - 00 00 mov rax, QWORD PTR _Newsize$[rbp] - 00086 eb 36 jmp SHORT $LN1@Calculate_ + 00034 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0003b e8 00 00 00 00 call ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ; std::vector >::max_size + 00040 48 89 45 28 mov QWORD PTR _Max$[rbp], rax + +; 1687 : +; 1688 : if (_Oldcapacity > _Max - _Oldcapacity / 2) { + + 00044 33 d2 xor edx, edx + 00046 48 8b 45 08 mov rax, QWORD PTR _Oldcapacity$[rbp] + 0004a b9 02 00 00 00 mov ecx, 2 + 0004f 48 f7 f1 div rcx + 00052 48 8b 4d 28 mov rcx, QWORD PTR _Max$[rbp] + 00056 48 2b c8 sub rcx, rax + 00059 48 8b c1 mov rax, rcx + 0005c 48 39 45 08 cmp QWORD PTR _Oldcapacity$[rbp], rax + 00060 76 06 jbe SHORT $LN2@Calculate_ + +; 1689 : return _Max; // geometric growth would overflow + + 00062 48 8b 45 28 mov rax, QWORD PTR _Max$[rbp] + 00066 eb 36 jmp SHORT $LN1@Calculate_ $LN2@Calculate_: -; 1621 : } -; 1622 : -; 1623 : const size_type _Geometric = _Oldcapacity + _Oldcapacity / 2; +; 1690 : } +; 1691 : +; 1692 : const size_type _Geometric = _Oldcapacity + _Oldcapacity / 2; - 00088 33 d2 xor edx, edx - 0008a 48 8b 45 08 mov rax, QWORD PTR _Oldcapacity$[rbp] - 0008e b9 02 00 00 00 mov ecx, 2 - 00093 48 f7 f1 div rcx - 00096 48 8b 4d 08 mov rcx, QWORD PTR _Oldcapacity$[rbp] - 0009a 48 03 c8 add rcx, rax - 0009d 48 8b c1 mov rax, rcx - 000a0 48 89 45 28 mov QWORD PTR _Geometric$[rbp], rax + 00068 33 d2 xor edx, edx + 0006a 48 8b 45 08 mov rax, QWORD PTR _Oldcapacity$[rbp] + 0006e b9 02 00 00 00 mov ecx, 2 + 00073 48 f7 f1 div rcx + 00076 48 8b 4d 08 mov rcx, QWORD PTR _Oldcapacity$[rbp] + 0007a 48 03 c8 add rcx, rax + 0007d 48 8b c1 mov rax, rcx + 00080 48 89 45 48 mov QWORD PTR _Geometric$[rbp], rax -; 1624 : -; 1625 : if (_Geometric < _Newsize) { +; 1693 : +; 1694 : if (_Geometric < _Newsize) { - 000a4 48 8b 85 28 01 + 00084 48 8b 85 48 01 00 00 mov rax, QWORD PTR _Newsize$[rbp] - 000ab 48 39 45 28 cmp QWORD PTR _Geometric$[rbp], rax - 000af 73 09 jae SHORT $LN3@Calculate_ + 0008b 48 39 45 48 cmp QWORD PTR _Geometric$[rbp], rax + 0008f 73 09 jae SHORT $LN3@Calculate_ -; 1626 : return _Newsize; // geometric growth would be insufficient +; 1695 : return _Newsize; // geometric growth would be insufficient - 000b1 48 8b 85 28 01 + 00091 48 8b 85 48 01 00 00 mov rax, QWORD PTR _Newsize$[rbp] - 000b8 eb 04 jmp SHORT $LN1@Calculate_ + 00098 eb 04 jmp SHORT $LN1@Calculate_ $LN3@Calculate_: -; 1627 : } -; 1628 : -; 1629 : return _Geometric; // geometric growth is sufficient +; 1696 : } +; 1697 : +; 1698 : return _Geometric; // geometric growth is sufficient - 000ba 48 8b 45 28 mov rax, QWORD PTR _Geometric$[rbp] + 0009a 48 8b 45 48 mov rax, QWORD PTR _Geometric$[rbp] $LN1@Calculate_: -; 1630 : } +; 1699 : } - 000be 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 0009e 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000a5 5f pop rdi + 000a6 5d pop rbp + 000a7 c3 ret 0 ?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z ENDP ; std::vector >::_Calculate_growth _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; 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 @@ -14871,7 +14491,7 @@ _First$ = 232 _Last$ = 240 ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z PROC ; std::vector >::_Destroy, COMDAT -; 1611 : void _Destroy(pointer _First, pointer _Last) { // destroy [_First, _Last) using allocator +; 1678 : _CONSTEXPR20_CONTAINER void _Destroy(pointer _First, pointer _Last) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -14882,39 +14502,34 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1612 : _Destroy_range(_First, _Last, _Getal()); + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 48 8b 8d e0 00 +; 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] - 00047 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 0004c 4c 8b c0 mov r8, rax - 0004f 48 8b 95 f0 00 + 00030 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 00035 4c 8b c0 mov r8, rax + 00038 48 8b 95 f0 00 00 00 mov rdx, QWORD PTR _Last$[rbp] - 00056 48 8b 8d e8 00 + 0003f 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _First$[rbp] - 0005d e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > + 00046 e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > -; 1613 : } +; 1681 : } - 00062 48 8d a5 c8 00 + 0004b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00069 5f pop rdi - 0006a 5d pop rbp - 0006b c3 ret 0 + 00052 5f pop rdi + 00053 5d pop rbp + 00054 c3 ret 0 ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ENDP ; std::vector >::_Destroy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z _TEXT SEGMENT $T1 = 196 @@ -14924,7 +14539,7 @@ _Last$ = 272 _Dest$ = 280 ?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z PROC ; std::vector >::_Umove_if_noexcept, COMDAT -; 1605 : void _Umove_if_noexcept(pointer _First, pointer _Last, pointer _Dest) { +; 1672 : _CONSTEXPR20_CONTAINER void _Umove_if_noexcept(pointer _First, pointer _Last, pointer _Dest) { $LN3: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 @@ -14936,50 +14551,44 @@ $LN3: 00016 48 81 ec 18 01 00 00 sub rsp, 280 ; 00000118H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8b fc mov rdi, rsp - 00025 b9 46 00 00 00 mov ecx, 70 ; 00000046H - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 38 - 01 00 00 mov rcx, QWORD PTR [rsp+312] - 00039 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1606 : // move_if_noexcept [_First, _Last) to raw _Dest, using allocator -; 1607 : _Umove_if_noexcept1(_First, _Last, _Dest, +; 1673 : // move_if_noexcept [_First, _Last) to raw _Dest, using allocator +; 1674 : _Umove_if_noexcept1(_First, _Last, _Dest, - 00045 48 8d 85 c4 00 + 0002e 48 8d 85 c4 00 00 00 lea rax, QWORD PTR $T1[rbp] - 0004c 48 8b f8 mov rdi, rax - 0004f 33 c0 xor eax, eax - 00051 b9 01 00 00 00 mov ecx, 1 - 00056 f3 aa rep stosb - 00058 0f b6 85 c4 00 + 00035 48 8b f8 mov rdi, rax + 00038 33 c0 xor eax, eax + 0003a b9 01 00 00 00 mov ecx, 1 + 0003f f3 aa rep stosb + 00041 0f b6 85 c4 00 00 00 movzx eax, BYTE PTR $T1[rbp] - 0005f 88 44 24 20 mov BYTE PTR [rsp+32], al - 00063 4c 8b 8d 18 01 + 00048 88 44 24 20 mov BYTE PTR [rsp+32], al + 0004c 4c 8b 8d 18 01 00 00 mov r9, QWORD PTR _Dest$[rbp] - 0006a 4c 8b 85 10 01 + 00053 4c 8b 85 10 01 00 00 mov r8, QWORD PTR _Last$[rbp] - 00071 48 8b 95 08 01 + 0005a 48 8b 95 08 01 00 00 mov rdx, QWORD PTR _First$[rbp] - 00078 48 8b 8d 00 01 + 00061 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0007f e8 00 00 00 00 call ?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z ; std::vector >::_Umove_if_noexcept1 + 00068 e8 00 00 00 00 call ?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z ; std::vector >::_Umove_if_noexcept1 -; 1608 : bool_constant, negation>>>{}); -; 1609 : } +; 1675 : bool_constant, negation>>>{}); +; 1676 : } - 00084 48 8d a5 e8 00 + 0006d 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 00074 5f pop rdi + 00075 5d pop rbp + 00076 c3 ret 0 ?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z ENDP ; std::vector >::_Umove_if_noexcept _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z _TEXT SEGMENT this$ = 224 @@ -14989,7 +14598,7 @@ _Dest$ = 248 __formal$ = 256 ?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z PROC ; std::vector >::_Umove_if_noexcept1, COMDAT -; 1595 : void _Umove_if_noexcept1(pointer _First, pointer _Last, pointer _Dest, true_type) { +; 1662 : _CONSTEXPR20_CONTAINER void _Umove_if_noexcept1(pointer _First, pointer _Last, pointer _Dest, true_type) { $LN3: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 @@ -15001,42 +14610,36 @@ $LN3: 00016 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8b fc mov rdi, rsp - 00025 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00039 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1596 : // move [_First, _Last) to raw _Dest, using allocator -; 1597 : _Uninitialized_move(_First, _Last, _Dest, _Getal()); +; 1663 : // move [_First, _Last) to raw _Dest, using allocator +; 1664 : _Uninitialized_move(_First, _Last, _Dest, _Getal()); - 00045 48 8b 8d e0 00 + 0002e 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0004c e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 00051 4c 8b c8 mov r9, rax - 00054 4c 8b 85 f8 00 + 00035 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0003a 4c 8b c8 mov r9, rax + 0003d 4c 8b 85 f8 00 00 00 mov r8, QWORD PTR _Dest$[rbp] - 0005b 48 8b 95 f0 00 + 00044 48 8b 95 f0 00 00 00 mov rdx, QWORD PTR _Last$[rbp] - 00062 48 8b 8d e8 00 + 0004b 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _First$[rbp] - 00069 e8 00 00 00 00 call ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z ; std::_Uninitialized_move > + 00052 e8 00 00 00 00 call ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z ; std::_Uninitialized_move > -; 1598 : } +; 1665 : } - 0006e 48 8d a5 c8 00 + 00057 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00075 5f pop rdi - 00076 5d pop rbp - 00077 c3 ret 0 + 0005e 5f pop rdi + 0005f 5d pop rbp + 00060 c3 ret 0 ?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z ENDP ; std::vector >::_Umove_if_noexcept1 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z _TEXT SEGMENT this$ = 224 @@ -15045,7 +14648,7 @@ _Last$ = 240 _Dest$ = 248 ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z PROC ; std::vector >::_Umove, COMDAT -; 1591 : pointer _Umove(pointer _First, pointer _Last, pointer _Dest) { // move [_First, _Last) to raw _Dest, using allocator +; 1657 : _CONSTEXPR20_CONTAINER pointer _Umove(pointer _First, pointer _Last, pointer _Dest) { $LN3: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 @@ -15057,48 +14660,43 @@ $LN3: 00016 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8b fc mov rdi, rsp - 00025 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00039 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1592 : return _Uninitialized_move(_First, _Last, _Dest, _Getal()); +; 1658 : // move [_First, _Last) to raw _Dest, using allocator +; 1659 : return _Uninitialized_move(_First, _Last, _Dest, _Getal()); - 00045 48 8b 8d e0 00 + 0002e 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0004c e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 00051 4c 8b c8 mov r9, rax - 00054 4c 8b 85 f8 00 + 00035 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0003a 4c 8b c8 mov r9, rax + 0003d 4c 8b 85 f8 00 00 00 mov r8, QWORD PTR _Dest$[rbp] - 0005b 48 8b 95 f0 00 + 00044 48 8b 95 f0 00 00 00 mov rdx, QWORD PTR _Last$[rbp] - 00062 48 8b 8d e8 00 + 0004b 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _First$[rbp] - 00069 e8 00 00 00 00 call ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z ; std::_Uninitialized_move > + 00052 e8 00 00 00 00 call ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z ; std::_Uninitialized_move > -; 1593 : } +; 1660 : } - 0006e 48 8d a5 c8 00 + 00057 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00075 5f pop rdi - 00076 5d pop rbp - 00077 c3 ret 0 + 0005e 5f pop rdi + 0005f 5d pop rbp + 00060 c3 ret 0 ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z ENDP ; std::vector >::_Umove _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ _TEXT SEGMENT _My_data$ = 8 this$ = 256 ?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ PROC ; std::vector >::capacity, COMDAT -; 1492 : _NODISCARD size_type capacity() const noexcept { +; 1557 : _NODISCARD _CONSTEXPR20_CONTAINER size_type capacity() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15107,42 +14705,36 @@ $LN3: 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 8b fc mov rdi, rsp - 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1493 : auto& _My_data = _Mypair._Myval2; +; 1558 : auto& _My_data = _Mypair._Myval2; - 00036 48 8b 85 00 01 + 0001f 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 00026 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1494 : return static_cast(_My_data._Myend - _My_data._Myfirst); +; 1559 : return static_cast(_My_data._Myend - _My_data._Myfirst); - 00041 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00045 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 00049 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 0004d 48 8b 40 18 mov rax, QWORD PTR [rax+24] - 00051 48 2b c1 sub rax, rcx - 00054 48 c1 f8 02 sar rax, 2 + 0002a 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0002e 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00032 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00036 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 0003a 48 2b c1 sub rax, rcx + 0003d 48 c1 f8 02 sar rax, 2 -; 1495 : } +; 1560 : } - 00058 48 8d a5 e8 00 + 00041 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0005f 5f pop rdi - 00060 5d pop rbp - 00061 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ENDP ; std::vector >::capacity _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ _TEXT SEGMENT $T1 = 200 @@ -15150,7 +14742,7 @@ $T2 = 232 this$ = 288 ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ PROC ; std::vector >::max_size, COMDAT -; 1487 : _NODISCARD size_type max_size() const noexcept { +; 1552 : _NODISCARD _CONSTEXPR20_CONTAINER size_type max_size() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15159,54 +14751,48 @@ $LN3: 00007 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1488 : return (_STD min)( - - 00036 48 8b 8d 20 01 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1553 : return (_STD min)( + + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0003d e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ ; std::vector >::_Getal - 00042 48 8b c8 mov rcx, rax - 00045 e8 00 00 00 00 call ?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z ; std::_Default_allocator_traits >::max_size - 0004a 48 89 85 c8 00 + 00026 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ ; std::vector >::_Getal + 0002b 48 8b c8 mov rcx, rax + 0002e e8 00 00 00 00 call ?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z ; std::_Default_allocator_traits >::max_size + 00033 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 00051 e8 00 00 00 00 call ?max@?$numeric_limits@_J@std@@SA_JXZ ; std::numeric_limits<__int64>::max - 00056 48 89 85 e8 00 + 0003a e8 00 00 00 00 call ?max@?$numeric_limits@_J@std@@SA_JXZ ; std::numeric_limits<__int64>::max + 0003f 48 89 85 e8 00 00 00 mov QWORD PTR $T2[rbp], rax - 0005d 48 8d 95 c8 00 + 00046 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00064 48 8d 8d e8 00 + 0004d 48 8d 8d e8 00 00 00 lea rcx, QWORD PTR $T2[rbp] - 0006b e8 00 00 00 00 call ??$min@_K@std@@YAAEB_KAEB_K0@Z ; std::min - 00070 48 8b 00 mov rax, QWORD PTR [rax] + 00054 e8 00 00 00 00 call ??$min@_K@std@@YAAEB_KAEB_K0@Z ; std::min + 00059 48 8b 00 mov rax, QWORD PTR [rax] -; 1489 : static_cast((numeric_limits::max)()), _Alty_traits::max_size(_Getal())); -; 1490 : } +; 1554 : static_cast((numeric_limits::max)()), _Alty_traits::max_size(_Getal())); +; 1555 : } - 00073 48 8d a5 08 01 + 0005c 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0007a 5f pop rdi - 0007b 5d pop rbp - 0007c c3 ret 0 + 00063 5f pop rdi + 00064 5d pop rbp + 00065 c3 ret 0 ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ENDP ; std::vector >::max_size _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ _TEXT SEGMENT _My_data$ = 8 this$ = 256 ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ PROC ; std::vector >::size, COMDAT -; 1482 : _NODISCARD size_type size() const noexcept { +; 1547 : _NODISCARD _CONSTEXPR20_CONTAINER size_type size() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15215,48 +14801,42 @@ $LN3: 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 8b fc mov rdi, rsp - 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1483 : auto& _My_data = _Mypair._Myval2; +; 1548 : auto& _My_data = _Mypair._Myval2; - 00036 48 8b 85 00 01 + 0001f 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 00026 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1484 : return static_cast(_My_data._Mylast - _My_data._Myfirst); +; 1549 : return static_cast(_My_data._Mylast - _My_data._Myfirst); - 00041 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00045 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 00049 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 0004d 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 00051 48 2b c1 sub rax, rcx - 00054 48 c1 f8 02 sar rax, 2 + 0002a 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0002e 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00032 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00036 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 0003a 48 2b c1 sub rax, rcx + 0003d 48 c1 f8 02 sar rax, 2 -; 1485 : } +; 1550 : } - 00058 48 8d a5 e8 00 + 00041 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0005f 5f pop rdi - 00060 5d pop rbp - 00061 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ ENDP ; std::vector >::size _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ _TEXT SEGMENT this$ = 224 ?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ PROC ; std::vector >::_Unchecked_end, COMDAT -; 1469 : pointer _Unchecked_end() noexcept { +; 1534 : _NODISCARD _CONSTEXPR20_CONTAINER pointer _Unchecked_end() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15265,39 +14845,33 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1470 : return _Mypair._Myval2._Mylast; + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 1535 : return _Mypair._Myval2._Mylast; + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 00026 48 8b 40 10 mov rax, QWORD PTR [rax+16] -; 1471 : } +; 1536 : } - 00041 48 8d a5 c8 00 + 0002a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00031 5f pop rdi + 00032 5d pop rbp + 00033 c3 ret 0 ?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ENDP ; std::vector >::_Unchecked_end _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ _TEXT SEGMENT this$ = 224 ?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ PROC ; std::vector >::_Unchecked_begin, COMDAT -; 1461 : pointer _Unchecked_begin() noexcept { +; 1526 : _NODISCARD _CONSTEXPR20_CONTAINER pointer _Unchecked_begin() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15306,33 +14880,27 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1462 : return _Mypair._Myval2._Myfirst; + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 +; 1527 : return _Mypair._Myval2._Myfirst; + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00026 48 8b 40 08 mov rax, QWORD PTR [rax+8] -; 1463 : } +; 1528 : } - 00041 48 8d a5 c8 00 + 0002a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00031 5f pop rdi + 00032 5d pop rbp + 00033 c3 ret 0 ?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ ENDP ; std::vector >::_Unchecked_begin _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ _TEXT SEGMENT _My_data$ = 8 @@ -15342,7 +14910,7 @@ this$ = 272 __$ReturnUdt$ = 280 ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ PROC ; std::vector >::end, COMDAT -; 1419 : _NODISCARD iterator end() noexcept { +; 1484 : _NODISCARD _CONSTEXPR20_CONTAINER iterator end() noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -15352,53 +14920,47 @@ $LN3: 0000c 48 81 ec 18 01 00 00 sub rsp, 280 ; 00000118H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 46 00 00 00 mov ecx, 70 ; 00000046H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 38 - 01 00 00 mov rcx, QWORD PTR [rsp+312] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1420 : auto& _My_data = _Mypair._Myval2; - - 0003b 48 8b 85 10 01 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1485 : auto& _My_data = _Mypair._Myval2; + + 00024 48 8b 85 10 01 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 0002b 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1421 : return iterator(_My_data._Mylast, _STD addressof(_My_data)); +; 1486 : return iterator(_My_data._Mylast, _STD addressof(_My_data)); - 00046 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 0004a e8 00 00 00 00 call ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z ; std::addressof > > - 0004f 48 89 85 d8 00 + 0002f 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00033 e8 00 00 00 00 call ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z ; std::addressof > > + 00038 48 89 85 d8 00 00 00 mov QWORD PTR tv80[rbp], rax - 00056 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0005a 48 8b 40 10 mov rax, QWORD PTR [rax+16] - 0005e 48 89 85 e0 00 + 0003f 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00043 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 00047 48 89 85 e0 00 00 00 mov QWORD PTR tv78[rbp], rax - 00065 4c 8b 85 d8 00 + 0004e 4c 8b 85 d8 00 00 00 mov r8, QWORD PTR tv80[rbp] - 0006c 48 8b 95 e0 00 + 00055 48 8b 95 e0 00 00 00 mov rdx, QWORD PTR tv78[rbp] - 00073 48 8b 8d 18 01 + 0005c 48 8b 8d 18 01 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] - 0007a e8 00 00 00 00 call ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z - 0007f 48 8b 85 18 01 + 00063 e8 00 00 00 00 call ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z + 00068 48 8b 85 18 01 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] -; 1422 : } +; 1487 : } - 00086 48 8d a5 f8 00 + 0006f 48 8d a5 f8 00 00 00 lea rsp, QWORD PTR [rbp+248] - 0008d 5f pop rdi - 0008e 5d pop rbp - 0008f c3 ret 0 + 00076 5f pop rdi + 00077 5d pop rbp + 00078 c3 ret 0 ?end@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ENDP ; std::vector >::end _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ _TEXT SEGMENT _My_data$ = 8 @@ -15408,7 +14970,7 @@ this$ = 272 __$ReturnUdt$ = 280 ?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ PROC ; std::vector >::begin, COMDAT -; 1409 : _NODISCARD iterator begin() noexcept { +; 1474 : _NODISCARD _CONSTEXPR20_CONTAINER iterator begin() noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -15418,53 +14980,47 @@ $LN3: 0000c 48 81 ec 18 01 00 00 sub rsp, 280 ; 00000118H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 46 00 00 00 mov ecx, 70 ; 00000046H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 38 - 01 00 00 mov rcx, QWORD PTR [rsp+312] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1410 : auto& _My_data = _Mypair._Myval2; - - 0003b 48 8b 85 10 01 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1475 : auto& _My_data = _Mypair._Myval2; + + 00024 48 8b 85 10 01 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 0002b 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1411 : return iterator(_My_data._Myfirst, _STD addressof(_My_data)); +; 1476 : return iterator(_My_data._Myfirst, _STD addressof(_My_data)); - 00046 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 0004a e8 00 00 00 00 call ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z ; std::addressof > > - 0004f 48 89 85 d8 00 + 0002f 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00033 e8 00 00 00 00 call ??$addressof@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@YAPEAV?$_Vector_val@U?$_Simple_types@K@std@@@0@AEAV10@@Z ; std::addressof > > + 00038 48 89 85 d8 00 00 00 mov QWORD PTR tv80[rbp], rax - 00056 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 0005a 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0005e 48 89 85 e0 00 + 0003f 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00043 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00047 48 89 85 e0 00 00 00 mov QWORD PTR tv78[rbp], rax - 00065 4c 8b 85 d8 00 + 0004e 4c 8b 85 d8 00 00 00 mov r8, QWORD PTR tv80[rbp] - 0006c 48 8b 95 e0 00 + 00055 48 8b 95 e0 00 00 00 mov rdx, QWORD PTR tv78[rbp] - 00073 48 8b 8d 18 01 + 0005c 48 8b 8d 18 01 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] - 0007a e8 00 00 00 00 call ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z - 0007f 48 8b 85 18 01 + 00063 e8 00 00 00 00 call ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z + 00068 48 8b 85 18 01 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] -; 1412 : } +; 1477 : } - 00086 48 8d a5 f8 00 + 0006f 48 8d a5 f8 00 00 00 lea rsp, QWORD PTR [rbp+248] - 0008d 5f pop rdi - 0008e 5d pop rbp - 0008f c3 ret 0 + 00076 5f pop rdi + 00077 5d pop rbp + 00078 c3 ret 0 ?begin@?$vector@KV?$allocator@K@std@@@std@@QEAA?AV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@2@XZ ENDP ; std::vector >::begin _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ _TEXT SEGMENT _My_data$ = 8 @@ -15473,7 +15029,7 @@ _Mylast$ = 72 this$ = 320 ?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ PROC ; std::vector >::clear, COMDAT -; 1383 : void clear() noexcept { // erase all +; 1449 : _CONSTEXPR20_CONTAINER void clear() noexcept { // erase all $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15482,75 +15038,69 @@ $LN3: 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 8b fc mov rdi, rsp - 00016 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 68 - 01 00 00 mov rcx, QWORD PTR [rsp+360] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1384 : auto& _My_data = _Mypair._Myval2; - - 00036 48 8b 85 40 01 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1450 : auto& _My_data = _Mypair._Myval2; + + 0001f 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 00026 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1385 : pointer& _Myfirst = _My_data._Myfirst; +; 1451 : pointer& _Myfirst = _My_data._Myfirst; - 00041 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00045 48 83 c0 08 add rax, 8 - 00049 48 89 45 28 mov QWORD PTR _Myfirst$[rbp], rax + 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 -; 1386 : pointer& _Mylast = _My_data._Mylast; +; 1452 : pointer& _Mylast = _My_data._Mylast; - 0004d 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] - 00051 48 83 c0 10 add rax, 16 - 00055 48 89 45 48 mov QWORD PTR _Mylast$[rbp], rax + 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 -; 1387 : -; 1388 : _My_data._Orphan_all(); +; 1453 : +; 1454 : _My_data._Orphan_all(); - 00059 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] - 0005d e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all + 00042 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00046 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all -; 1389 : _Destroy(_Myfirst, _Mylast); +; 1455 : _Destroy(_Myfirst, _Mylast); - 00062 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 00066 4c 8b 00 mov r8, QWORD PTR [rax] - 00069 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 0006d 48 8b 10 mov rdx, QWORD PTR [rax] - 00070 48 8b 8d 40 01 + 0004b 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 0004f 4c 8b 00 mov r8, QWORD PTR [rax] + 00052 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 00056 48 8b 10 mov rdx, QWORD PTR [rax] + 00059 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00077 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy + 00060 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy -; 1390 : _Mylast = _Myfirst; +; 1456 : _Mylast = _Myfirst; - 0007c 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 00080 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] - 00084 48 8b 09 mov rcx, QWORD PTR [rcx] - 00087 48 89 08 mov QWORD PTR [rax], rcx + 00065 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 00069 48 8b 4d 28 mov rcx, QWORD PTR _Myfirst$[rbp] + 0006d 48 8b 09 mov rcx, QWORD PTR [rcx] + 00070 48 89 08 mov QWORD PTR [rax], rcx -; 1391 : } +; 1457 : } - 0008a 48 8d a5 28 01 + 00073 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 00091 5f pop rdi - 00092 5d pop rbp - 00093 c3 ret 0 + 0007a 5f pop rdi + 0007b 5d pop rbp + 0007c c3 ret 0 ?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ ENDP ; std::vector >::clear _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z _TEXT SEGMENT this$ = 224 _Val$ = 232 ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z PROC ; std::vector >::push_back, COMDAT -; 716 : void push_back(const _Ty& _Val) { // insert element at end, provide strong guarantee +; 755 : _CONSTEXPR20_CONTAINER void push_back(const _Ty& _Val) { // insert element at end, provide strong guarantee $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -15560,35 +15110,29 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 717 : emplace_back(_Val); - - 0003b 48 8b 95 e8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 756 : emplace_back(_Val); + + 00024 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Val$[rbp] - 00042 48 8b 8d e0 00 + 0002b 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00049 e8 00 00 00 00 call ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z ; std::vector >::emplace_back + 00032 e8 00 00 00 00 call ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z ; std::vector >::emplace_back -; 718 : } +; 757 : } - 0004e 48 8d a5 c8 00 + 00037 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00055 5f pop rdi - 00056 5d pop rbp - 00057 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ENDP ; std::vector >::push_back _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector ; COMDAT ??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ _TEXT SEGMENT $T1 = 196 @@ -15598,7 +15142,7 @@ tv69 = 248 this$ = 288 ??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::vector >::vector >, COMDAT -; 445 : vector() noexcept(is_nothrow_default_constructible_v<_Alty>) : _Mypair(_Zero_then_variadic_args_t{}) { +; 476 : : _Mypair(_Zero_then_variadic_args_t{}) { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15607,62 +15151,56 @@ $LN3: 00007 48 81 ec 28 01 00 00 sub rsp, 296 ; 00000128H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 20 01 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 89 85 f8 00 + 00026 48 89 85 f8 00 00 00 mov QWORD PTR tv69[rbp], rax - 00044 0f b6 95 c4 00 + 0002d 0f b6 95 c4 00 00 00 movzx edx, BYTE PTR $T1[rbp] - 0004b 48 8b 8d f8 00 + 00034 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR tv69[rbp] - 00052 e8 00 00 00 00 call ??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z ; std::_Compressed_pair,std::_Vector_val >,1>::_Compressed_pair,std::_Vector_val >,1><> + 0003b e8 00 00 00 00 call ??$?0$$V@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z ; std::_Compressed_pair,std::_Vector_val >,1>::_Compressed_pair,std::_Vector_val >,1><> -; 446 : _Mypair._Myval2._Alloc_proxy(_GET_PROXY_ALLOCATOR(_Alty, _Getal())); +; 477 : _Mypair._Myval2._Alloc_proxy(_GET_PROXY_ALLOCATOR(_Alty, _Getal())); - 00057 48 8b 85 20 01 + 00040 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0005e 48 89 85 f8 00 + 00047 48 89 85 f8 00 00 00 mov QWORD PTR tv83[rbp], rax - 00065 48 8b 8d 20 01 + 0004e 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0006c e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal - 00071 48 8b d0 mov rdx, rax - 00074 48 8d 8d e4 00 + 00055 e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_Getal + 0005a 48 8b d0 mov rdx, rax + 0005d 48 8d 8d e4 00 00 00 lea rcx, QWORD PTR $T2[rbp] - 0007b e8 00 00 00 00 call ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator - 00080 48 8b d0 mov rdx, rax - 00083 48 8b 8d f8 00 + 00064 e8 00 00 00 00 call ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z ; std::allocator::allocator + 00069 48 8b d0 mov rdx, rax + 0006c 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR tv83[rbp] - 0008a e8 00 00 00 00 call ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z ; std::_Container_base12::_Alloc_proxy > + 00073 e8 00 00 00 00 call ??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z ; std::_Container_base12::_Alloc_proxy > -; 447 : } +; 478 : } - 0008f 48 8b 85 20 01 + 00078 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00096 48 8d a5 08 01 + 0007f 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0009d 5f pop rdi - 0009e 5d pop rbp - 0009f c3 ret 0 + 00086 5f pop rdi + 00087 5d pop rbp + 00088 c3 ret 0 ??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ ENDP ; std::vector >::vector > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z _TEXT SEGMENT __formal$ = 224 ?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z PROC ; std::_Default_allocator_traits >::max_size, COMDAT -; 702 : _NODISCARD static size_type max_size(const _Alloc&) noexcept { +; 727 : _NODISCARD static _CONSTEXPR20_DYNALLOC size_type max_size(const _Alloc&) noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15671,39 +15209,33 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 703 : return static_cast(-1) / sizeof(value_type); - - 00036 48 b8 ff ff ff + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 728 : return static_cast(-1) / sizeof(value_type); + + 0001f 48 b8 ff ff ff ff ff ff ff 3f mov rax, 4611686018427387903 ; 3fffffffffffffffH -; 704 : } +; 729 : } - 00040 48 8d a5 c8 00 + 00029 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 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 ?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z ENDP ; std::_Default_allocator_traits >::max_size _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?allocate@?$allocator@K@std@@QEAAPEAK_K@Z _TEXT SEGMENT this$ = 224 _Count$ = 232 ?allocate@?$allocator@K@std@@QEAAPEAK_K@Z PROC ; std::allocator::allocate, COMDAT -; 806 : _NODISCARD __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { +; 838 : _NODISCARD _CONSTEXPR20_DYNALLOC __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -15713,35 +15245,29 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 807 : return static_cast<_Ty*>(_Allocate<_New_alignof<_Ty>>(_Get_size_of_n(_Count))); - - 0003b 48 8b 8d e8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 839 : return static_cast<_Ty*>(_Allocate<_New_alignof<_Ty>>(_Get_size_of_n(_Count))); + + 00024 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Count$[rbp] - 00042 e8 00 00 00 00 call ??$_Get_size_of_n@$03@std@@YA_K_K@Z ; std::_Get_size_of_n<4> - 00047 48 8b c8 mov rcx, rax - 0004a e8 00 00 00 00 call ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> + 0002b e8 00 00 00 00 call ??$_Get_size_of_n@$03@std@@YA_K_K@Z ; std::_Get_size_of_n<4> + 00030 48 8b c8 mov rcx, rax + 00033 e8 00 00 00 00 call ??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z ; std::_Allocate<16,std::_Default_allocate_traits,0> -; 808 : } +; 840 : } - 0004f 48 8d a5 c8 00 + 00038 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00056 5f pop rdi - 00057 5d pop rbp - 00058 c3 ret 0 + 0003f 5f pop rdi + 00040 5d pop rbp + 00041 c3 ret 0 ?allocate@?$allocator@K@std@@QEAAPEAK_K@Z ENDP ; std::allocator::allocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; 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 @@ -15749,7 +15275,7 @@ _Ptr$ = 232 _Count$ = 240 ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z PROC ; std::allocator::deallocate, COMDAT -; 801 : void deallocate(_Ty* const _Ptr, const size_t _Count) { +; 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 @@ -15760,44 +15286,38 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 802 : // no overflow check on the following multiply; we assume _Allocate did that check -; 803 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count); - - 00040 48 8b 85 f0 00 + 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] - 00047 48 c1 e0 02 shl rax, 2 - 0004b 48 8b d0 mov rdx, rax - 0004e 48 8b 8d e8 00 + 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] - 00055 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> + 0003e e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> -; 804 : } +; 836 : } - 0005a 48 8d a5 c8 00 + 00043 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00061 5f pop rdi - 00062 5d pop rbp - 00063 c3 ret 0 + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c c3 ret 0 ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ENDP ; std::allocator::deallocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??0?$allocator@K@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 ??0?$allocator@K@std@@QEAA@XZ PROC ; std::allocator::allocator, COMDAT -; 795 : constexpr allocator() noexcept {} +; 825 : constexpr allocator() noexcept {} $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15806,22 +15326,16 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8d a5 c8 00 + 00026 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00044 5f pop rdi - 00045 5d pop rbp - 00046 c3 ret 0 + 0002d 5f pop rdi + 0002e 5d pop rbp + 0002f c3 ret 0 ??0?$allocator@K@std@@QEAA@XZ ENDP ; std::allocator::allocator _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -15838,36 +15352,30 @@ $LN4: 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 fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8b 8d e0 00 + 00017 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00035 e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK - 0003a 8b 85 e8 00 00 + 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] - 00040 83 e0 01 and eax, 1 - 00043 85 c0 test eax, eax - 00045 74 11 je SHORT $LN2@scalar - 00047 ba f0 00 00 00 mov edx, 240 ; 000000f0H - 0004c 48 8b 8d e0 00 + 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] - 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00058 48 8b 85 e0 00 + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8d a5 c8 00 + 00048 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ??1_NATIVE_CODE_LINK@@QEAA@XZ _TEXT SEGMENT $T1 = 200 @@ -15883,48 +15391,41 @@ $LN4: 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 8b fc mov rdi, rsp - 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 39 : if (RawData) - 00036 48 8b 85 00 01 + 0001f 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 83 78 20 00 cmp QWORD PTR [rax+32], 0 - 00042 74 24 je SHORT $LN2@NATIVE_COD + 00026 48 83 78 20 00 cmp QWORD PTR [rax+32], 0 + 0002b 74 23 je SHORT $LN2@NATIVE_COD ; 40 : delete RawData; - 00044 48 8b 85 00 01 + 0002d 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0004b 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 0004f 48 89 85 c8 00 + 00034 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 00038 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 00056 ba 01 00 00 00 mov edx, 1 - 0005b 48 8b 8d c8 00 + 0003f ba 01 00 00 00 mov edx, 1 + 00044 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR $T1[rbp] - 00062 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete - 00067 90 npad 1 + 0004b e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@NATIVE_COD: ; 41 : } - 00068 48 8d a5 e8 00 + 00050 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0006f 5f pop rdi - 00070 5d pop rbp - 00071 c3 ret 0 + 00057 5f pop rdi + 00058 5d pop rbp + 00059 c3 ret 0 ??1_NATIVE_CODE_LINK@@QEAA@XZ ENDP ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z _TEXT SEGMENT $T1 = 200 @@ -15947,104 +15448,98 @@ $LN6: 00015 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0001c 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00021 48 8b fc mov rdi, rsp - 00024 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00029 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002e f3 ab rep stosd - 00030 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 00038 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 0003f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00021 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 24 : : _NATIVE_CODE_LINK() - 00044 48 8b 8d 00 01 + 0002d 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0004b e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00050 90 npad 1 + 00034 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00039 90 npad 1 ; 26 : Flags = F; - 00051 48 8b 85 00 01 + 0003a 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00058 8b 8d 08 01 00 + 00041 8b 8d 08 01 00 00 mov ecx, DWORD PTR F$[rbp] - 0005e 89 48 18 mov DWORD PTR [rax+24], ecx + 00047 89 48 18 mov DWORD PTR [rax+24], ecx ; 27 : RawDataSize = Rds; - 00061 48 8b 85 00 01 + 0004a 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00068 8b 8d 18 01 00 + 00051 8b 8d 18 01 00 00 mov ecx, DWORD PTR Rds$[rbp] - 0006e 89 48 28 mov DWORD PTR [rax+40], ecx + 00057 89 48 28 mov DWORD PTR [rax+40], ecx ; 28 : RawData = new UCHAR[Rds]; - 00071 8b 85 18 01 00 + 0005a 8b 85 18 01 00 00 mov eax, DWORD PTR Rds$[rbp] - 00077 8b c8 mov ecx, eax - 00079 e8 00 00 00 00 call ??_U@YAPEAX_K@Z ; operator new[] - 0007e 48 89 85 c8 00 + 00060 8b c8 mov ecx, eax + 00062 e8 00 00 00 00 call ??_U@YAPEAX_K@Z ; operator new[] + 00067 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 00085 48 8b 85 00 01 + 0006e 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0008c 48 8b 8d c8 00 + 00075 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR $T1[rbp] - 00093 48 89 48 20 mov QWORD PTR [rax+32], rcx + 0007c 48 89 48 20 mov QWORD PTR [rax+32], rcx ; 29 : if (Rd) - 00097 48 83 bd 10 01 + 00080 48 83 bd 10 01 00 00 00 cmp QWORD PTR Rd$[rbp], 0 - 0009f 74 53 je SHORT $LN2@NATIVE_COD + 00088 74 53 je SHORT $LN2@NATIVE_COD ; 30 : { ; 31 : RtlCopyMemory(RawData, Rd, Rds); - 000a1 8b 85 18 01 00 + 0008a 8b 85 18 01 00 00 mov eax, DWORD PTR Rds$[rbp] - 000a7 44 8b c0 mov r8d, eax - 000aa 48 8b 95 10 01 + 00090 44 8b c0 mov r8d, eax + 00093 48 8b 95 10 01 00 00 mov rdx, QWORD PTR Rd$[rbp] - 000b1 48 8b 85 00 01 + 0009a 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000b8 48 8b 48 20 mov rcx, QWORD PTR [rax+32] - 000bc e8 00 00 00 00 call memcpy + 000a1 48 8b 48 20 mov rcx, QWORD PTR [rax+32] + 000a5 e8 00 00 00 00 call memcpy ; 32 : if (Decode) - 000c1 83 bd 20 01 00 + 000aa 83 bd 20 01 00 00 00 cmp DWORD PTR Decode$[rbp], 0 - 000c8 74 2a je SHORT $LN2@NATIVE_COD + 000b1 74 2a je SHORT $LN2@NATIVE_COD ; 33 : XedDecode(&XedInstruction, RawData, RawDataSize); - 000ca 48 8b 85 00 01 + 000b3 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d1 48 83 c0 30 add rax, 48 ; 00000030H - 000d5 48 8b 8d 00 01 + 000ba 48 83 c0 30 add rax, 48 ; 00000030H + 000be 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000dc 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 000e0 48 8b 8d 00 01 + 000c5 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 000c9 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000e7 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 000eb 48 8b c8 mov rcx, rax - 000ee e8 00 00 00 00 call xed_decode - 000f3 90 npad 1 + 000d0 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 000d4 48 8b c8 mov rcx, rax + 000d7 e8 00 00 00 00 call xed_decode + 000dc 90 npad 1 $LN2@NATIVE_COD: ; 34 : } ; 35 : } - 000f4 48 8b 85 00 01 + 000dd 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 8d a5 e8 00 + 000e4 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00102 5f pop rdi - 00103 5d pop rbp - 00104 c3 ret 0 + 000eb 5f pop rdi + 000ec 5d pop rbp + 000ed c3 ret 0 ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ENDP ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK _TEXT ENDS ; COMDAT text$x @@ -16097,7 +15592,7 @@ Decode$ = 288 ?dtor$0@?0???0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z@4HA ENDP ; `_NATIVE_CODE_LINK::_NATIVE_CODE_LINK'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT this$ = 224 @@ -16116,58 +15611,52 @@ $LN4: 00010 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00033 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 0003a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001c 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 16 : : _NATIVE_CODE_LINK() - 0003f 48 8b 8d e0 00 + 00028 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00046 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 0002f e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK ; 18 : Block = B; - 0004b 48 8b 85 e0 00 + 00034 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00052 48 8b 8d f0 00 + 0003b 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR B$[rbp] - 00059 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00042 48 89 48 10 mov QWORD PTR [rax+16], rcx ; 19 : Label = LabelId; - 0005d 48 8b 85 e0 00 + 00046 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00064 8b 8d e8 00 00 + 0004d 8b 8d e8 00 00 00 mov ecx, DWORD PTR LabelId$[rbp] - 0006a 89 48 1c mov DWORD PTR [rax+28], ecx + 00053 89 48 1c mov DWORD PTR [rax+28], ecx ; 20 : Flags = CODE_FLAG_IS_LABEL; - 0006d 48 8b 85 e0 00 + 00056 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00074 c7 40 18 01 00 + 0005d c7 40 18 01 00 00 00 mov DWORD PTR [rax+24], 1 ; 21 : } - 0007b 48 8b 85 e0 00 + 00064 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00082 48 8d a5 c8 00 + 0006b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00089 5f pop rdi - 0008a 5d pop rbp - 0008b c3 ret 0 + 00072 5f pop rdi + 00073 5d pop rbp + 00074 c3 ret 0 ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ??0_NATIVE_CODE_LINK@@QEAA@XZ _TEXT SEGMENT this$ = 224 @@ -16182,94 +15671,88 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : XedDecodedInstZero(&XedInstruction); - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 83 c0 30 add rax, 48 ; 00000030H - 00041 48 8b c8 mov rcx, rax - 00044 e8 00 00 00 00 call xed_decoded_inst_zero + 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_zero ; 6 : XedDecodedInstSetMode(&XedInstruction, XED_MACHINE_MODE_LONG_64, XED_ADDRESS_WIDTH_64b); - 00049 48 8b 85 e0 00 + 00032 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00050 48 83 c0 30 add rax, 48 ; 00000030H - 00054 41 b8 08 00 00 + 00039 48 83 c0 30 add rax, 48 ; 00000030H + 0003d 41 b8 08 00 00 00 mov r8d, 8 - 0005a ba 01 00 00 00 mov edx, 1 - 0005f 48 8b c8 mov rcx, rax - 00062 e8 00 00 00 00 call xed_decoded_inst_set_mode + 00043 ba 01 00 00 00 mov edx, 1 + 00048 48 8b c8 mov rcx, rax + 0004b e8 00 00 00 00 call xed_decoded_inst_set_mode ; 7 : Flags = 0UL; - 00067 48 8b 85 e0 00 + 00050 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0006e c7 40 18 00 00 + 00057 c7 40 18 00 00 00 00 mov DWORD PTR [rax+24], 0 ; 8 : Next = Prev = NULL; - 00075 48 8b 85 e0 00 + 0005e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0007c 48 c7 40 08 00 + 00065 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 00084 48 8b 85 e0 00 + 0006d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0008b 48 c7 00 00 00 + 00074 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 ; 9 : Block = NULL; - 00092 48 8b 85 e0 00 + 0007b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00099 48 c7 40 10 00 + 00082 48 c7 40 10 00 00 00 00 mov QWORD PTR [rax+16], 0 ; 10 : Label = 0UL; - 000a1 48 8b 85 e0 00 + 0008a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 000a8 c7 40 1c 00 00 + 00091 c7 40 1c 00 00 00 00 mov DWORD PTR [rax+28], 0 ; 11 : RawData = NULL; - 000af 48 8b 85 e0 00 + 00098 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 000b6 48 c7 40 20 00 + 0009f 48 c7 40 20 00 00 00 00 mov QWORD PTR [rax+32], 0 ; 12 : RawDataSize = 0UL; - 000be 48 8b 85 e0 00 + 000a7 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 000c5 c7 40 28 00 00 + 000ae c7 40 28 00 00 00 00 mov DWORD PTR [rax+40], 0 ; 13 : } - 000cc 48 8b 85 e0 00 + 000b5 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 000d3 48 8d a5 c8 00 + 000bc 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 000da 5f pop rdi - 000db 5d pop rbp - 000dc c3 ret 0 + 000c3 5f pop rdi + 000c4 5d pop rbp + 000c5 c3 ret 0 ??0_NATIVE_CODE_LINK@@QEAA@XZ ENDP ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_get_length _TEXT SEGMENT p$ = 224 @@ -16283,34 +15766,28 @@ xed_decoded_inst_get_length PROC ; COMDAT 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F7815311_xed-decoded-inst-api@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0AA8C18B_xed-decoded-inst-api@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 283 : return p->_decoded_length; - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 0003d 0f b6 80 a6 00 + 00026 0f b6 80 a6 00 00 00 movzx eax, BYTE PTR [rax+166] ; 284 : } - 00044 48 8d a5 c8 00 + 0002d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004b 5f pop rdi - 0004c 5d pop rbp - 0004d c3 ret 0 + 00034 5f pop rdi + 00035 5d pop rbp + 00036 c3 ret 0 xed_decoded_inst_get_length ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_set_mode _TEXT SEGMENT dstate$ = 8 @@ -16330,60 +15807,60 @@ xed_decoded_inst_set_mode PROC ; COMDAT 00010 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 00017 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 28 + 0001c 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00021 b9 0a 00 00 00 mov ecx, 10 + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 28 01 00 00 mov rcx, QWORD PTR [rsp+296] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 d8 00 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 d8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F7815311_xed-decoded-inst-api@h - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0AA8C18B_xed-decoded-inst-api@h + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 260 : xed_state_t dstate; ; 261 : dstate.mmode = mmode; - 00050 8b 85 08 01 00 + 00052 8b 85 08 01 00 00 mov eax, DWORD PTR mmode$[rbp] - 00056 89 45 08 mov DWORD PTR dstate$[rbp], eax + 00058 89 45 08 mov DWORD PTR dstate$[rbp], eax ; 262 : dstate.stack_addr_width = stack_addr_width; - 00059 8b 85 10 01 00 + 0005b 8b 85 10 01 00 00 mov eax, DWORD PTR stack_addr_width$[rbp] - 0005f 89 45 0c mov DWORD PTR dstate$[rbp+4], eax + 00061 89 45 0c mov DWORD PTR dstate$[rbp+4], eax ; 263 : xed_operand_values_set_mode(p, &dstate); - 00062 48 8d 55 08 lea rdx, QWORD PTR dstate$[rbp] - 00066 48 8b 8d 00 01 + 00064 48 8d 55 08 lea rdx, QWORD PTR dstate$[rbp] + 00068 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR p$[rbp] - 0006d e8 00 00 00 00 call xed_operand_values_set_mode + 0006f e8 00 00 00 00 call xed_operand_values_set_mode ; 264 : } - 00072 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00076 48 8d 15 00 00 + 00074 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00078 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:xed_decoded_inst_set_mode$rtcFrameData - 0007d e8 00 00 00 00 call _RTC_CheckStackVars - 00082 48 8b 8d d8 00 + 0007f e8 00 00 00 00 call _RTC_CheckStackVars + 00084 48 8b 8d d8 00 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00089 48 33 cd xor rcx, rbp - 0008c e8 00 00 00 00 call __security_check_cookie - 00091 48 8d a5 e8 00 + 0008b 48 33 cd xor rcx, rbp + 0008e e8 00 00 00 00 call __security_check_cookie + 00093 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00098 5f pop rdi - 00099 5d pop rbp - 0009a c3 ret 0 + 0009a 5f pop rdi + 0009b 5d pop rbp + 0009c c3 ret 0 xed_decoded_inst_set_mode ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_noperands _TEXT SEGMENT noperands$ = 4 @@ -16398,40 +15875,34 @@ xed_decoded_inst_noperands PROC ; COMDAT 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 8b fc mov rdi, rsp - 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F7815311_xed-decoded-inst-api@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0AA8C18B_xed-decoded-inst-api@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 171 : unsigned int noperands = xed_inst_noperands(xed_decoded_inst_inst(p)); - 00036 48 8b 8d 00 01 + 0001f 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR p$[rbp] - 0003d e8 00 00 00 00 call xed_decoded_inst_inst - 00042 48 8b c8 mov rcx, rax - 00045 e8 00 00 00 00 call xed_inst_noperands - 0004a 89 45 04 mov DWORD PTR noperands$[rbp], eax + 00026 e8 00 00 00 00 call xed_decoded_inst_inst + 0002b 48 8b c8 mov rcx, rax + 0002e e8 00 00 00 00 call xed_inst_noperands + 00033 89 45 04 mov DWORD PTR noperands$[rbp], eax ; 172 : return noperands; - 0004d 8b 45 04 mov eax, DWORD PTR noperands$[rbp] + 00036 8b 45 04 mov eax, DWORD PTR noperands$[rbp] ; 173 : } - 00050 48 8d a5 e8 00 + 00039 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00057 5f pop rdi - 00058 5d pop rbp - 00059 c3 ret 0 + 00040 5f pop rdi + 00041 5d pop rbp + 00042 c3 ret 0 xed_decoded_inst_noperands ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_get_iclass _TEXT SEGMENT p$ = 224 @@ -16445,42 +15916,36 @@ xed_decoded_inst_get_iclass PROC ; COMDAT 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F7815311_xed-decoded-inst-api@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0AA8C18B_xed-decoded-inst-api@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode $LN4@xed_decode: ; 76 : xed_assert(p->_inst != 0); - 00036 33 c0 xor eax, eax - 00038 85 c0 test eax, eax - 0003a 75 fa jne SHORT $LN4@xed_decode + 0001f 33 c0 xor eax, eax + 00021 85 c0 test eax, eax + 00023 75 fa jne SHORT $LN4@xed_decode ; 77 : return xed_inst_iclass(p->_inst); - 0003c 48 8b 85 e0 00 + 00025 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 00043 48 8b 88 a8 00 + 0002c 48 8b 88 a8 00 00 00 mov rcx, QWORD PTR [rax+168] - 0004a e8 00 00 00 00 call xed_inst_iclass + 00033 e8 00 00 00 00 call xed_inst_iclass ; 78 : } - 0004f 48 8d a5 c8 00 + 00038 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00056 5f pop rdi - 00057 5d pop rbp - 00058 c3 ret 0 + 0003f 5f pop rdi + 00040 5d pop rbp + 00041 c3 ret 0 xed_decoded_inst_get_iclass ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_get_category _TEXT SEGMENT p$ = 224 @@ -16494,42 +15959,36 @@ xed_decoded_inst_get_category PROC ; COMDAT 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F7815311_xed-decoded-inst-api@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0AA8C18B_xed-decoded-inst-api@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode $LN4@xed_decode: ; 55 : xed_assert(p->_inst != 0); - 00036 33 c0 xor eax, eax - 00038 85 c0 test eax, eax - 0003a 75 fa jne SHORT $LN4@xed_decode + 0001f 33 c0 xor eax, eax + 00021 85 c0 test eax, eax + 00023 75 fa jne SHORT $LN4@xed_decode ; 56 : return xed_inst_category(p->_inst); - 0003c 48 8b 85 e0 00 + 00025 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 00043 48 8b 88 a8 00 + 0002c 48 8b 88 a8 00 00 00 mov rcx, QWORD PTR [rax+168] - 0004a e8 00 00 00 00 call xed_inst_category + 00033 e8 00 00 00 00 call xed_inst_category ; 57 : } - 0004f 48 8d a5 c8 00 + 00038 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00056 5f pop rdi - 00057 5d pop rbp - 00058 c3 ret 0 + 0003f 5f pop rdi + 00040 5d pop rbp + 00041 c3 ret 0 xed_decoded_inst_get_category ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_inst _TEXT SEGMENT p$ = 224 @@ -16543,34 +16002,28 @@ xed_decoded_inst_inst PROC ; COMDAT 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F7815311_xed-decoded-inst-api@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0AA8C18B_xed-decoded-inst-api@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 47 : return p->_inst; - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 0003d 48 8b 80 a8 00 + 00026 48 8b 80 a8 00 00 00 mov rax, QWORD PTR [rax+168] ; 48 : } - 00044 48 8d a5 c8 00 + 0002d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004b 5f pop rdi - 0004c 5d pop rbp - 0004d c3 ret 0 + 00034 5f pop rdi + 00035 5d pop rbp + 00036 c3 ret 0 xed_decoded_inst_inst ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-encoder-hl.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h ; COMDAT xed_inst1 _TEXT SEGMENT inst$ = 224 @@ -16592,86 +16045,80 @@ xed_inst1 PROC ; COMDAT 00017 48 81 ec e0 00 00 00 sub rsp, 224 ; 000000e0H 0001e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00023 48 8b fc mov rdi, rsp - 00026 b9 38 00 00 00 mov ecx, 56 ; 00000038H - 0002b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00030 f3 ab rep stosd - 00032 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0003a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__21860875_xed-encoder-hl@h - 00041 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00023 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1C89993E_xed-encoder-hl@h + 0002a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 491 : ; 492 : inst->mode=mode; - 00046 48 8b 85 e0 00 + 0002f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 0004d 48 8b 8d e8 00 + 00036 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR mode$[rbp] - 00054 48 89 08 mov QWORD PTR [rax], rcx + 0003d 48 89 08 mov QWORD PTR [rax], rcx ; 493 : inst->iclass = iclass; - 00057 48 8b 85 e0 00 + 00040 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 0005e 8b 8d f0 00 00 + 00047 8b 8d f0 00 00 00 mov ecx, DWORD PTR iclass$[rbp] - 00064 89 48 08 mov DWORD PTR [rax+8], ecx + 0004d 89 48 08 mov DWORD PTR [rax+8], ecx ; 494 : inst->effective_operand_width = effective_operand_width; - 00067 48 8b 85 e0 00 + 00050 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 0006e 8b 8d f8 00 00 + 00057 8b 8d f8 00 00 00 mov ecx, DWORD PTR effective_operand_width$[rbp] - 00074 89 48 0c mov DWORD PTR [rax+12], ecx + 0005d 89 48 0c mov DWORD PTR [rax+12], ecx ; 495 : inst->effective_address_width = 0; - 00077 48 8b 85 e0 00 + 00060 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 0007e c7 40 10 00 00 + 00067 c7 40 10 00 00 00 00 mov DWORD PTR [rax+16], 0 ; 496 : inst->prefixes.i = 0; - 00085 48 8b 85 e0 00 + 0006e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 0008c c7 40 14 00 00 + 00075 c7 40 14 00 00 00 00 mov DWORD PTR [rax+20], 0 ; 497 : inst->operands[0] = op0; - 00093 b8 30 00 00 00 mov eax, 48 ; 00000030H - 00098 48 6b c0 00 imul rax, rax, 0 - 0009c 48 8b 8d e0 00 + 0007c b8 30 00 00 00 mov eax, 48 ; 00000030H + 00081 48 6b c0 00 imul rax, rax, 0 + 00085 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR inst$[rbp] - 000a3 48 8d 7c 01 20 lea rdi, QWORD PTR [rcx+rax+32] - 000a8 48 8b b5 00 01 + 0008c 48 8d 7c 01 20 lea rdi, QWORD PTR [rcx+rax+32] + 00091 48 8b b5 00 01 00 00 mov rsi, QWORD PTR op0$[rbp] - 000af b9 30 00 00 00 mov ecx, 48 ; 00000030H - 000b4 f3 a4 rep movsb + 00098 b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0009d f3 a4 rep movsb ; 498 : inst->noperands = 1; - 000b6 48 8b 85 e0 00 + 0009f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 000bd c7 40 18 01 00 + 000a6 c7 40 18 01 00 00 00 mov DWORD PTR [rax+24], 1 ; 499 : } - 000c4 48 8d a5 c0 00 + 000ad 48 8d a5 c0 00 00 00 lea rsp, QWORD PTR [rbp+192] - 000cb 5f pop rdi - 000cc 5e pop rsi - 000cd 5d pop rbp - 000ce c3 ret 0 + 000b4 5f pop rdi + 000b5 5e pop rsi + 000b6 5d pop rbp + 000b7 c3 ret 0 xed_inst1 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-encoder-hl.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h ; COMDAT xed_relbr _TEXT SEGMENT o$ = 8 @@ -16692,72 +16139,72 @@ xed_relbr PROC ; COMDAT 00011 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 0001d 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00022 b9 14 00 00 00 mov ecx, 20 + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 58 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 08 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 08 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__21860875_xed-encoder-hl@h - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1C89993E_xed-encoder-hl@h + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 106 : xed_encoder_operand_t o; ; 107 : o.type = XED_ENCODER_OPERAND_TYPE_BRDISP; - 00051 c7 45 08 01 00 + 00053 c7 45 08 01 00 00 00 mov DWORD PTR o$[rbp], 1 ; 108 : o.u.brdisp = brdisp; - 00058 8b 85 38 01 00 + 0005a 8b 85 38 01 00 00 mov eax, DWORD PTR brdisp$[rbp] - 0005e 89 45 10 mov DWORD PTR o$[rbp+8], eax + 00060 89 45 10 mov DWORD PTR o$[rbp+8], eax ; 109 : o.width_bits = width_bits; - 00061 8b 85 40 01 00 + 00063 8b 85 40 01 00 00 mov eax, DWORD PTR width_bits$[rbp] - 00067 89 45 30 mov DWORD PTR o$[rbp+40], eax + 00069 89 45 30 mov DWORD PTR o$[rbp+40], eax ; 110 : return o; - 0006a 48 8d 45 08 lea rax, QWORD PTR o$[rbp] - 0006e 48 8b bd 30 01 + 0006c 48 8d 45 08 lea rax, QWORD PTR o$[rbp] + 00070 48 8b bd 30 01 00 00 mov rdi, QWORD PTR $T4[rbp] - 00075 48 8b f0 mov rsi, rax - 00078 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0007d f3 a4 rep movsb - 0007f 48 8b 85 30 01 + 00077 48 8b f0 mov rsi, rax + 0007a b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0007f f3 a4 rep movsb + 00081 48 8b 85 30 01 00 00 mov rax, QWORD PTR $T4[rbp] ; 111 : } - 00086 48 8b f8 mov rdi, rax - 00089 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0008d 48 8d 15 00 00 + 00088 48 8b f8 mov rdi, rax + 0008b 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0008f 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:xed_relbr$rtcFrameData - 00094 e8 00 00 00 00 call _RTC_CheckStackVars - 00099 48 8b c7 mov rax, rdi - 0009c 48 8b 8d 08 01 + 00096 e8 00 00 00 00 call _RTC_CheckStackVars + 0009b 48 8b c7 mov rax, rdi + 0009e 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000a3 48 33 cd xor rcx, rbp - 000a6 e8 00 00 00 00 call __security_check_cookie - 000ab 48 8d a5 10 01 + 000a5 48 33 cd xor rcx, rbp + 000a8 e8 00 00 00 00 call __security_check_cookie + 000ad 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 000b2 5f pop rdi - 000b3 5e pop rsi - 000b4 5d pop rbp - 000b5 c3 ret 0 + 000b4 5f pop rdi + 000b5 5e pop rsi + 000b6 5d pop rbp + 000b7 c3 ret 0 xed_relbr ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-inst.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h ; COMDAT xed_inst_noperands _TEXT SEGMENT p$ = 224 @@ -16771,33 +16218,27 @@ xed_inst_noperands PROC ; COMDAT 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4E05E119_xed-inst@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F5B5218E_xed-inst@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 313 : return p->_noperands; - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 0003d 0f b6 00 movzx eax, BYTE PTR [rax] + 00026 0f b6 00 movzx eax, BYTE PTR [rax] ; 314 : } - 00040 48 8d a5 c8 00 + 00029 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 + 00030 5f pop rdi + 00031 5d pop rbp + 00032 c3 ret 0 xed_inst_noperands ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-inst.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h ; COMDAT xed_inst_category _TEXT SEGMENT p$ = 224 @@ -16811,35 +16252,29 @@ xed_inst_category PROC ; COMDAT 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4E05E119_xed-inst@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F5B5218E_xed-inst@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 298 : return xed_iform_to_category(xed_inst_iform_enum(p)); - 00036 48 8b 8d e0 00 + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR p$[rbp] - 0003d e8 00 00 00 00 call xed_inst_iform_enum - 00042 8b c8 mov ecx, eax - 00044 e8 00 00 00 00 call xed_iform_to_category + 00026 e8 00 00 00 00 call xed_inst_iform_enum + 0002b 8b c8 mov ecx, eax + 0002d e8 00 00 00 00 call xed_iform_to_category ; 299 : } - 00049 48 8d a5 c8 00 + 00032 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 + 00039 5f pop rdi + 0003a 5d pop rbp + 0003b c3 ret 0 xed_inst_category ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-inst.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h ; COMDAT xed_inst_iclass _TEXT SEGMENT p$ = 224 @@ -16853,35 +16288,29 @@ xed_inst_iclass PROC ; COMDAT 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4E05E119_xed-inst@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F5B5218E_xed-inst@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 294 : return xed_iform_to_iclass(xed_inst_iform_enum(p)); - 00036 48 8b 8d e0 00 + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR p$[rbp] - 0003d e8 00 00 00 00 call xed_inst_iform_enum - 00042 8b c8 mov ecx, eax - 00044 e8 00 00 00 00 call xed_iform_to_iclass + 00026 e8 00 00 00 00 call xed_inst_iform_enum + 0002b 8b c8 mov ecx, eax + 0002d e8 00 00 00 00 call xed_iform_to_iclass ; 295 : } - 00049 48 8d a5 c8 00 + 00032 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 + 00039 5f pop rdi + 0003a 5d pop rbp + 0003b c3 ret 0 xed_inst_iclass ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-inst.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h ; COMDAT xed_inst_iform_enum _TEXT SEGMENT p$ = 224 @@ -16895,33 +16324,27 @@ xed_inst_iform_enum PROC ; COMDAT 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4E05E119_xed-inst@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F5B5218E_xed-inst@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 290 : return (xed_iform_enum_t)p->_iform_enum; - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 0003d 0f b7 40 06 movzx eax, WORD PTR [rax+6] + 00026 0f b7 40 06 movzx eax, WORD PTR [rax+6] ; 291 : } - 00041 48 8d a5 c8 00 + 0002a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00031 5f pop rdi + 00032 5d pop rbp + 00033 c3 ret 0 xed_inst_iform_enum ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-inst.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h ; COMDAT xed_operand_type _TEXT SEGMENT p$ = 224 @@ -16935,33 +16358,27 @@ xed_operand_type PROC ; COMDAT 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4E05E119_xed-inst@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F5B5218E_xed-inst@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 97 : return (xed_operand_type_enum_t)p->_type; - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 0003d 0f b6 40 04 movzx eax, BYTE PTR [rax+4] + 00026 0f b6 40 04 movzx eax, BYTE PTR [rax+4] ; 98 : } - 00041 48 8d a5 c8 00 + 0002a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 00031 5f pop rdi + 00032 5d pop rbp + 00033 c3 ret 0 xed_operand_type ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-iform-map.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-iform-map.h ; COMDAT xed_iform_to_iclass _TEXT SEGMENT ii$ = 8 @@ -16976,52 +16393,46 @@ xed_iform_to_iclass PROC ; COMDAT 00006 48 81 ec 08 01 00 00 sub rsp, 264 ; 00000108H 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00012 48 8b fc mov rdi, rsp - 00015 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001f f3 ab rep stosd - 00021 8b 8c 24 28 01 - 00 00 mov ecx, DWORD PTR [rsp+296] - 00028 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__209FD46F_xed-iform-map@h - 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00012 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__F79B480A_xed-iform-map@h + 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 75 : const xed_iform_info_t* ii = xed_iform_map(iform); - 00034 8b 8d 00 01 00 + 0001e 8b 8d 00 01 00 00 mov ecx, DWORD PTR iform$[rbp] - 0003a e8 00 00 00 00 call xed_iform_map - 0003f 48 89 45 08 mov QWORD PTR ii$[rbp], rax + 00024 e8 00 00 00 00 call xed_iform_map + 00029 48 89 45 08 mov QWORD PTR ii$[rbp], rax ; 76 : if (ii) - 00043 48 83 7d 08 00 cmp QWORD PTR ii$[rbp], 0 - 00048 74 0d je SHORT $LN2@xed_iform_ + 0002d 48 83 7d 08 00 cmp QWORD PTR ii$[rbp], 0 + 00032 74 0d je SHORT $LN2@xed_iform_ ; 77 : return (xed_iclass_enum_t) ii->iclass; - 0004a 48 8b 45 08 mov rax, QWORD PTR ii$[rbp] - 0004e 8b 00 mov eax, DWORD PTR [rax] - 00050 25 ff ff 00 00 and eax, 65535 ; 0000ffffH - 00055 eb 02 jmp SHORT $LN1@xed_iform_ + 00034 48 8b 45 08 mov rax, QWORD PTR ii$[rbp] + 00038 8b 00 mov eax, DWORD PTR [rax] + 0003a 25 ff ff 00 00 and eax, 65535 ; 0000ffffH + 0003f eb 02 jmp SHORT $LN1@xed_iform_ $LN2@xed_iform_: ; 78 : return XED_ICLASS_INVALID; - 00057 33 c0 xor eax, eax + 00041 33 c0 xor eax, eax $LN1@xed_iform_: ; 79 : } - 00059 48 8d a5 e8 00 + 00043 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00060 5f pop rdi - 00061 5d pop rbp - 00062 c3 ret 0 + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c c3 ret 0 xed_iform_to_iclass ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -17032,7 +16443,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -17044,147 +16455,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -17195,7 +16600,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -17207,147 +16612,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\ios +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\ios ; COMDAT ?hex@std@@YAAEAVios_base@1@AEAV21@@Z _TEXT SEGMENT _Iosbase$ = 224 @@ -17362,42 +16761,36 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__165C22CB_ios - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FD1AE8DD_ios + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 207 : _Iosbase.setf(ios_base::hex, ios_base::basefield); - 00036 41 b8 00 0e 00 + 0001f 41 b8 00 0e 00 00 mov r8d, 3584 ; 00000e00H - 0003c ba 00 08 00 00 mov edx, 2048 ; 00000800H - 00041 48 8b 8d e0 00 + 00025 ba 00 08 00 00 mov edx, 2048 ; 00000800H + 0002a 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Iosbase$[rbp] - 00048 ff 15 00 00 00 + 00031 ff 15 00 00 00 00 call QWORD PTR __imp_?setf@ios_base@std@@QEAAHHH@Z ; 208 : return _Iosbase; - 0004e 48 8b 85 e0 00 + 00037 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Iosbase$[rbp] ; 209 : } - 00055 48 8d a5 c8 00 + 0003e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0005c 5f pop rdi - 0005d 5d pop rbp - 0005e c3 ret 0 + 00045 5f pop rdi + 00046 5d pop rbp + 00047 c3 ret 0 ?hex@std@@YAAEAVios_base@1@AEAV21@@Z ENDP ; std::hex _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; 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 @@ -17408,7 +16801,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -17419,104 +16812,98 @@ $LN7: 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 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; +; 523 : // convert C string to _Elem sequence using _Cvtvec +; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; - 00040 48 8b 8d 40 01 + 00029 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 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 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 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 - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 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: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 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] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 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] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; 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 @@ -17533,79 +16920,73 @@ $LN4: 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 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 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 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 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 - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_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); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 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] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 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.27.29110\include\xlocale +; 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 @@ -17624,7 +17005,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 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 @@ -17635,260 +17016,260 @@ $LN12: 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 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 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] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 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] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 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 -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 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 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 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] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 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] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 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] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 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 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 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 - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 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 -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 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] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 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 - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 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] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 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] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 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] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 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 - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 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] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 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] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ _TEXT SEGMENT ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ PROC ; std::_Narrow_char_traits::eof, COMDAT -; 400 : _NODISCARD static constexpr int_type eof() noexcept { +; 477 : _NODISCARD static constexpr int_type eof() noexcept { $LN3: 00000 40 55 push rbp @@ -17896,29 +17277,25 @@ $LN3: 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8b fc mov rdi, rsp - 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 401 : return static_cast(EOF); +; 478 : return static_cast(EOF); - 0002a b8 ff ff ff ff mov eax, -1 + 0001b b8 ff ff ff ff mov eax, -1 -; 402 : } +; 479 : } - 0002f 48 8d a5 c8 00 + 00020 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00036 5f pop rdi - 00037 5d pop rbp - 00038 c3 ret 0 + 00027 5f pop rdi + 00028 5d pop rbp + 00029 c3 ret 0 ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ENDP ; std::_Narrow_char_traits::eof _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xstring ; COMDAT ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z _TEXT SEGMENT tv65 = 192 @@ -17926,7 +17303,7 @@ _Left$ = 240 _Right$ = 248 ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z PROC ; std::_Narrow_char_traits::eq_int_type, COMDAT -; 392 : _NODISCARD static constexpr bool eq_int_type(const int_type& _Left, const int_type& _Right) noexcept { +; 469 : _NODISCARD static constexpr bool eq_int_type(const int_type& _Left, const int_type& _Right) noexcept { $LN5: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -17936,55 +17313,49 @@ $LN5: 0000c 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 48 8b fc mov rdi, rsp - 0001b b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 393 : return _Left == _Right; - - 0003b 48 8b 85 f0 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 470 : return _Left == _Right; + + 00024 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _Left$[rbp] - 00042 48 8b 8d f8 00 + 0002b 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _Right$[rbp] - 00049 8b 09 mov ecx, DWORD PTR [rcx] - 0004b 39 08 cmp DWORD PTR [rax], ecx - 0004d 75 0c jne SHORT $LN3@eq_int_typ - 0004f c7 85 c0 00 00 + 00032 8b 09 mov ecx, DWORD PTR [rcx] + 00034 39 08 cmp DWORD PTR [rax], ecx + 00036 75 0c jne SHORT $LN3@eq_int_typ + 00038 c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv65[rbp], 1 - 00059 eb 0a jmp SHORT $LN4@eq_int_typ + 00042 eb 0a jmp SHORT $LN4@eq_int_typ $LN3@eq_int_typ: - 0005b c7 85 c0 00 00 + 00044 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv65[rbp], 0 $LN4@eq_int_typ: - 00065 0f b6 85 c0 00 + 0004e 0f b6 85 c0 00 00 00 movzx eax, BYTE PTR tv65[rbp] -; 394 : } +; 471 : } - 0006c 48 8d a5 d8 00 + 00055 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 00073 5f pop rdi - 00074 5d pop rbp - 00075 c3 ret 0 + 0005c 5f pop rdi + 0005d 5d pop rbp + 0005e c3 ret 0 ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ENDP ; std::_Narrow_char_traits::eq_int_type _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xutility ; COMDAT ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z _TEXT SEGMENT $T1 = 200 -tv78 = 216 +tv80 = 216 _Obj$ = 256 <_Args_0>$ = 264 ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z PROC ; std::_Construct_in_place, COMDAT -; 228 : void _Construct_in_place(_Ty& _Obj, _Types&&... _Args) noexcept(is_nothrow_constructible_v<_Ty, _Types...>) { +; 151 : is_nothrow_constructible_v<_Ty, _Types...>) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -17994,196 +17365,394 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 8d 00 01 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR _Obj$[rbp] - 00042 e8 00 00 00 00 call ??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z ; std::addressof - 00047 48 8b d0 mov rdx, rax - 0004a b9 10 00 00 00 mov ecx, 16 - 0004f e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new - 00054 48 89 85 c8 00 + 0002b e8 00 00 00 00 call ??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z ; std::addressof + 00030 48 8b c8 mov rcx, rax + 00033 e8 00 00 00 00 call ??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z ; std::_Voidify_iter + 00038 48 8b d0 mov rdx, rax + 0003b b9 10 00 00 00 mov ecx, 16 + 00040 e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new + 00045 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 0005b 48 8b 8d 08 01 + 0004c 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR <_Args_0>$[rbp] - 00062 e8 00 00 00 00 call ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z ; std::forward - 00067 48 8b 00 mov rax, QWORD PTR [rax] - 0006a 48 89 85 d8 00 - 00 00 mov QWORD PTR tv78[rbp], rax - 00071 48 8b 95 d8 00 - 00 00 mov rdx, QWORD PTR tv78[rbp] - 00078 48 8b 8d c8 00 + 00053 e8 00 00 00 00 call ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z ; std::forward + 00058 48 8b 00 mov rax, QWORD PTR [rax] + 0005b 48 89 85 d8 00 + 00 00 mov QWORD PTR tv80[rbp], rax + 00062 48 8b 95 d8 00 + 00 00 mov rdx, QWORD PTR tv80[rbp] + 00069 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR $T1[rbp] - 0007f e8 00 00 00 00 call ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z ; std::_Container_proxy::_Container_proxy - 00084 90 npad 1 + 00070 e8 00 00 00 00 call ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z ; std::_Container_proxy::_Container_proxy + +; 152 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 153 : if (_STD is_constant_evaluated()) { +; 154 : _STD construct_at(_STD addressof(_Obj), _STD forward<_Types>(_Args)...); +; 155 : } else +; 156 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 157 : { +; 158 : ::new (_Voidify_iter(_STD addressof(_Obj))) _Ty(_STD forward<_Types>(_Args)...); +; 159 : } +; 160 : } -; 229 : ::new (const_cast(static_cast(_STD addressof(_Obj)))) -; 230 : _Ty(_STD forward<_Types>(_Args)...); -; 231 : } - - 00085 48 8d a5 e8 00 + 00075 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0008c 5f pop rdi - 0008d 5d pop rbp - 0008e c3 ret 0 + 0007c 5f pop rdi + 0007d 5d pop rbp + 0007e c3 ret 0 ??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z ENDP ; std::_Construct_in_place _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory -; COMDAT ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ _TEXT SEGMENT -_Pnext$1 = 8 +_Lock$ = 4 +__$ArrayPad$ = 216 this$ = 256 -?_Orphan_me@_Iterator_base12@std@@QEAAXXZ PROC ; std::_Iterator_base12::_Orphan_me, COMDAT +?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ PROC ; std::_Iterator_base12::_Orphan_me_locked, COMDAT -; 1184 : void _Orphan_me() noexcept { +; 1212 : void _Orphan_me_locked() noexcept { -$LN15: +$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 18 01 - 00 00 sub rsp, 280 ; 00000118H + 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 + +; 1213 : _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 + +; 1214 : _Orphan_me_unlocked(); + + 00058 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005f e8 00 00 00 00 call ?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ ; std::_Iterator_base12::_Orphan_me_unlocked + +; 1215 : } + + 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_me_locked@_Iterator_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_me_locked@_Iterator_base12@std@@AEAAXXZ ENDP ; std::_Iterator_base12::_Orphan_me_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_me_unlocked@_Iterator_base12@std@@AEAAXXZ +_TEXT SEGMENT +_Pnext$ = 8 +_Temp$1 = 40 +this$ = 288 +?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ PROC ; std::_Iterator_base12::_Orphan_me_unlocked, COMDAT + +; 1200 : _CONSTEXPR20_CONTAINER void _Orphan_me_unlocked() noexcept { + +$LN14: + 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 8b fc mov rdi, rsp - 00016 b9 46 00 00 00 mov ecx, 70 ; 00000046H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 38 - 01 00 00 mov rcx, QWORD PTR [rsp+312] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1185 : if (_Myproxy) { // adopted, remove self from list - - 00036 48 8b 85 00 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 83 38 00 cmp QWORD PTR [rax], 0 - 00041 0f 84 da 00 00 - 00 je $LN10@Orphan_me + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1186 : _Iterator_base12** _Pnext = &_Myproxy->_Myfirstiter; +; 1201 : _Iterator_base12** _Pnext = &_Myproxy->_Myfirstiter; - 00047 48 8b 85 00 01 + 0001f 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0004e 48 8b 00 mov rax, QWORD PTR [rax] - 00051 48 83 c0 08 add rax, 8 - 00055 48 89 45 08 mov QWORD PTR _Pnext$1[rbp], rax -$LN2@Orphan_me: + 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$[rbp], rax +$LN2@Orphan_me_: + +; 1202 : while (*_Pnext && *_Pnext != this) { + + 00031 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] + 00035 48 83 38 00 cmp QWORD PTR [rax], 0 + 00039 74 29 je SHORT $LN6@Orphan_me_ + 0003b 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] + 0003f 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00046 48 39 08 cmp QWORD PTR [rax], rcx + 00049 74 19 je SHORT $LN6@Orphan_me_ -; 1187 : while (*_Pnext && *_Pnext != this) { +; 1203 : const auto _Temp = *_Pnext; // TRANSITION, VSO-1269037 - 00059 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] - 0005d 48 83 38 00 cmp QWORD PTR [rax], 0 - 00061 74 21 je SHORT $LN6@Orphan_me - 00063 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] - 00067 48 8b 8d 00 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0006e 48 39 08 cmp QWORD PTR [rax], rcx - 00071 74 11 je SHORT $LN6@Orphan_me + 0004b 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] + 0004f 48 8b 00 mov rax, QWORD PTR [rax] + 00052 48 89 45 28 mov QWORD PTR _Temp$1[rbp], rax -; 1188 : _Pnext = &(*_Pnext)->_Mynextiter; +; 1204 : _Pnext = &_Temp->_Mynextiter; - 00073 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] - 00077 48 8b 00 mov rax, QWORD PTR [rax] - 0007a 48 83 c0 08 add rax, 8 - 0007e 48 89 45 08 mov QWORD PTR _Pnext$1[rbp], rax + 00056 48 8b 45 28 mov rax, QWORD PTR _Temp$1[rbp] + 0005a 48 83 c0 08 add rax, 8 + 0005e 48 89 45 08 mov QWORD PTR _Pnext$[rbp], rax -; 1189 : } +; 1205 : } - 00082 eb d5 jmp SHORT $LN2@Orphan_me -$LN6@Orphan_me: + 00062 eb cd jmp SHORT $LN2@Orphan_me_ +$LN6@Orphan_me_: -; 1190 : -; 1191 : _STL_VERIFY(*_Pnext, "ITERATOR LIST CORRUPTED!"); +; 1206 : +; 1207 : _STL_VERIFY(*_Pnext, "ITERATOR LIST CORRUPTED!"); - 00084 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] - 00088 48 83 38 00 cmp QWORD PTR [rax], 0 - 0008c 74 02 je SHORT $LN9@Orphan_me - 0008e eb 6b jmp SHORT $LN12@Orphan_me -$LN9@Orphan_me: - 00090 48 8d 05 00 00 + 00064 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] + 00068 48 83 38 00 cmp QWORD PTR [rax], 0 + 0006c 74 02 je SHORT $LN9@Orphan_me_ + 0006e eb 6b jmp SHORT $LN11@Orphan_me_ +$LN9@Orphan_me_: + 00070 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BJ@LFDBABJJ@ITERATOR?5LIST?5CORRUPTED?$CB@ - 00097 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 0009c 48 8d 05 00 00 + 00077 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 0007c 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 000a3 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000a8 45 33 c9 xor r9d, r9d - 000ab 41 b8 a7 04 00 - 00 mov r8d, 1191 ; 000004a7H - 000b1 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 000b8 b9 02 00 00 00 mov ecx, 2 - 000bd ff 15 00 00 00 + 00083 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 00088 45 33 c9 xor r9d, r9d + 0008b 41 b8 b7 04 00 + 00 mov r8d, 1207 ; 000004b7H + 00091 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 00098 b9 02 00 00 00 mov ecx, 2 + 0009d ff 15 00 00 00 00 call QWORD PTR __imp__CrtDbgReport - 000c3 83 f8 01 cmp eax, 1 - 000c6 75 03 jne SHORT $LN14@Orphan_me - 000c8 cc int 3 - 000c9 33 c0 xor eax, eax -$LN14@Orphan_me: - 000cb 48 c7 44 24 20 + 000a3 83 f8 01 cmp eax, 1 + 000a6 75 03 jne SHORT $LN13@Orphan_me_ + 000a8 cc int 3 + 000a9 33 c0 xor eax, eax +$LN13@Orphan_me_: + 000ab 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 000d4 41 b9 a7 04 00 - 00 mov r9d, 1191 ; 000004a7H - 000da 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 000e1 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_1EE@KLDMFDFL@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ - 000e8 48 8d 0d 00 00 + 000b4 41 b9 b7 04 00 + 00 mov r9d, 1207 ; 000004b7H + 000ba 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@ + 000c1 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_1FG@EMKODCE@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ + 000c8 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1DG@PLBPCAEM@?$AA?$CC?$AAI?$AAT?$AAE?$AAR?$AAA?$AAT?$AAO?$AAR?$AA?5?$AAL?$AAI?$AAS?$AAT?$AA?5@ - 000ef ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 000f5 33 c0 xor eax, eax - 000f7 85 c0 test eax, eax - 000f9 75 95 jne SHORT $LN9@Orphan_me -$LN12@Orphan_me: - 000fb 33 c0 xor eax, eax - 000fd 85 c0 test eax, eax - 000ff 75 83 jne SHORT $LN6@Orphan_me - -; 1192 : *_Pnext = _Mynextiter; - - 00101 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] - 00105 48 8b 8d 00 01 + 000d5 33 c0 xor eax, eax + 000d7 85 c0 test eax, eax + 000d9 75 95 jne SHORT $LN9@Orphan_me_ +$LN11@Orphan_me_: + 000db 33 c0 xor eax, eax + 000dd 85 c0 test eax, eax + 000df 75 83 jne SHORT $LN6@Orphan_me_ + +; 1208 : *_Pnext = _Mynextiter; + + 000e1 48 8b 45 08 mov rax, QWORD PTR _Pnext$[rbp] + 000e5 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0010c 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 00110 48 89 08 mov QWORD PTR [rax], rcx + 000ec 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 000f0 48 89 08 mov QWORD PTR [rax], rcx -; 1193 : _Myproxy = nullptr; +; 1209 : _Myproxy = nullptr; - 00113 48 8b 85 00 01 + 000f3 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0011a 48 c7 00 00 00 + 000fa 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -$LN10@Orphan_me: -; 1194 : } -; 1195 : } +; 1210 : } + + 00101 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 00108 5f pop rdi + 00109 5d pop rbp + 0010a c3 ret 0 +?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ ENDP ; std::_Iterator_base12::_Orphan_me_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 ?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z +_TEXT SEGMENT +_Lock$ = 4 +__$ArrayPad$ = 216 +this$ = 256 +_Parent_proxy$ = 264 +?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z PROC ; std::_Iterator_base12::_Adopt_locked, COMDAT + +; 1195 : void _Adopt_locked(_Container_proxy* _Parent_proxy) noexcept { - 00121 48 8d a5 e8 00 +$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 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 0001d b9 0a 00 00 00 mov ecx, 10 + 00022 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00027 f3 ab rep stosd + 00029 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 00031 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00038 48 33 c5 xor rax, rbp + 0003b 48 89 85 d8 00 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00042 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00049 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1196 : _Lockit _Lock(_LOCK_DEBUG); + + 0004e ba 03 00 00 00 mov edx, 3 + 00053 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 00057 ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z + +; 1197 : _Adopt_unlocked(_Parent_proxy); + + 0005d 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _Parent_proxy$[rbp] + 00064 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0006b e8 00 00 00 00 call ?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z ; std::_Iterator_base12::_Adopt_unlocked + +; 1198 : } + + 00070 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] + 00074 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 0007a 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0007e 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z$rtcFrameData + 00085 e8 00 00 00 00 call _RTC_CheckStackVars + 0008a 48 8b 8d d8 00 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00091 48 33 cd xor rcx, rbp + 00094 e8 00 00 00 00 call __security_check_cookie + 00099 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00128 5f pop rdi - 00129 5d pop rbp - 0012a c3 ret 0 -?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ENDP ; std::_Iterator_base12::_Orphan_me + 000a0 5f pop rdi + 000a1 5d pop rbp + 000a2 c3 ret 0 +?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z ENDP ; std::_Iterator_base12::_Adopt_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 ?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z +_TEXT SEGMENT +this$ = 224 +_Parent_proxy$ = 232 +?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z PROC ; std::_Iterator_base12::_Adopt_unlocked, COMDAT + +; 1186 : _CONSTEXPR20_CONTAINER void _Adopt_unlocked(_Container_proxy* _Parent_proxy) 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 + +; 1187 : if (_Myproxy) { // adopted, remove self from list + + 00024 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0002b 48 83 38 00 cmp QWORD PTR [rax], 0 + 0002f 74 0c je SHORT $LN2@Adopt_unlo + +; 1188 : _Orphan_me_unlocked(); + + 00031 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00038 e8 00 00 00 00 call ?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ ; std::_Iterator_base12::_Orphan_me_unlocked +$LN2@Adopt_unlo: + +; 1189 : } +; 1190 : _Mynextiter = _Parent_proxy->_Myfirstiter; + + 0003d 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00044 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Parent_proxy$[rbp] + 0004b 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 0004f 48 89 48 08 mov QWORD PTR [rax+8], rcx + +; 1191 : _Parent_proxy->_Myfirstiter = this; + + 00053 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Parent_proxy$[rbp] + 0005a 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00061 48 89 48 08 mov QWORD PTR [rax+8], rcx + +; 1192 : _Myproxy = _Parent_proxy; + + 00065 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006c 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Parent_proxy$[rbp] + 00073 48 89 08 mov QWORD PTR [rax], rcx + +; 1193 : } + + 00076 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0007d 5f pop rdi + 0007e 5d pop rbp + 0007f c3 ret 0 +?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z ENDP ; std::_Iterator_base12::_Adopt_unlocked _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ _TEXT SEGMENT tv68 = 192 this$ = 240 ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ PROC ; std::_Iterator_base12::_Getcont, COMDAT -; 1179 : const _Container_base12* _Getcont() const noexcept { +; 1175 : _CONSTEXPR20_CONTAINER const _Container_base12* _Getcont() const noexcept { $LN5: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -18192,396 +17761,298 @@ $LN5: 00007 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1180 : return _Myproxy ? _Myproxy->_Mycont : nullptr; - - 00036 48 8b 85 f0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1176 : return _Myproxy ? _Myproxy->_Mycont : nullptr; + + 0001f 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 83 38 00 cmp QWORD PTR [rax], 0 - 00041 74 16 je SHORT $LN3@Getcont - 00043 48 8b 85 f0 00 + 00026 48 83 38 00 cmp QWORD PTR [rax], 0 + 0002a 74 16 je SHORT $LN3@Getcont + 0002c 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004a 48 8b 00 mov rax, QWORD PTR [rax] - 0004d 48 8b 00 mov rax, QWORD PTR [rax] - 00050 48 89 85 c0 00 + 00033 48 8b 00 mov rax, QWORD PTR [rax] + 00036 48 8b 00 mov rax, QWORD PTR [rax] + 00039 48 89 85 c0 00 00 00 mov QWORD PTR tv68[rbp], rax - 00057 eb 0b jmp SHORT $LN4@Getcont + 00040 eb 0b jmp SHORT $LN4@Getcont $LN3@Getcont: - 00059 48 c7 85 c0 00 + 00042 48 c7 85 c0 00 00 00 00 00 00 00 mov QWORD PTR tv68[rbp], 0 $LN4@Getcont: - 00064 48 8b 85 c0 00 + 0004d 48 8b 85 c0 00 00 00 mov rax, QWORD PTR tv68[rbp] -; 1181 : } +; 1177 : } - 0006b 48 8d a5 d8 00 + 00054 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 00072 5f pop rdi - 00073 5d pop rbp - 00074 c3 ret 0 + 0005b 5f pop rdi + 0005c 5d pop rbp + 0005d c3 ret 0 ?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ ENDP ; std::_Iterator_base12::_Getcont _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; COMDAT ?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ +_TEXT SEGMENT +this$ = 224 +?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ PROC ; std::_Iterator_base12::_Orphan_me_v2, COMDAT + +; 1152 : _CONSTEXPR20_CONTAINER void _Orphan_me_v2() 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 + +; 1153 : if (_Myproxy) { // adopted, remove self from list + + 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_me_ + +; 1154 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 1155 : if (_STD is_constant_evaluated()) { +; 1156 : _Orphan_me_unlocked(); +; 1157 : } else +; 1158 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 1159 : { +; 1160 : _Orphan_me_locked(); + + 0002c 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00033 e8 00 00 00 00 call ?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ ; std::_Iterator_base12::_Orphan_me_locked +$LN2@Orphan_me_: + +; 1161 : } +; 1162 : } +; 1163 : } + + 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_me_v2@_Iterator_base12@std@@QEAAXXZ ENDP ; std::_Iterator_base12::_Orphan_me_v2 +_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 ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z _TEXT SEGMENT -_Parent_proxy$5 = 8 -_Lock$6 = 36 -_Lock$7 = 68 -__$ArrayPad$ = 280 -this$ = 320 -_Parent$ = 328 +_Parent_proxy$1 = 8 +this$ = 256 +_Parent$ = 264 ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z PROC ; std::_Iterator_base12::_Adopt, COMDAT -; 1151 : void _Adopt(const _Container_base12* _Parent) noexcept { +; 1134 : _CONSTEXPR20_CONTAINER void _Adopt(const _Container_base12* _Parent) noexcept { $LN6: 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 48 01 - 00 00 sub rsp, 328 ; 00000148H + 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 8b fc mov rdi, rsp - 0001b b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 68 - 01 00 00 mov rcx, QWORD PTR [rsp+360] - 0002f 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00036 48 33 c5 xor rax, rbp - 00039 48 89 85 18 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00040 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00047 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1152 : if (_Parent) { +; 1135 : if (_Parent) { // have a parent, do adoption - 0004c 48 83 bd 48 01 + 00024 48 83 bd 08 01 00 00 00 cmp QWORD PTR _Parent$[rbp], 0 - 00054 74 75 je SHORT $LN2@Adopt + 0002c 74 30 je SHORT $LN2@Adopt -; 1153 : // have a parent, do adoption -; 1154 : _Container_proxy* _Parent_proxy = _Parent->_Myproxy; +; 1136 : _Container_proxy* _Parent_proxy = _Parent->_Myproxy; - 00056 48 8b 85 48 01 + 0002e 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Parent$[rbp] - 0005d 48 8b 00 mov rax, QWORD PTR [rax] - 00060 48 89 45 08 mov QWORD PTR _Parent_proxy$5[rbp], rax - -; 1155 : -; 1156 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1157 : if (_Myproxy != _Parent_proxy) { // change parentage - - 00064 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 0006b 48 8b 4d 08 mov rcx, QWORD PTR _Parent_proxy$5[rbp] - 0006f 48 39 08 cmp QWORD PTR [rax], rcx - 00072 74 55 je SHORT $LN4@Adopt - -; 1158 : _Lockit _Lock(_LOCK_DEBUG); - - 00074 ba 03 00 00 00 mov edx, 3 - 00079 48 8d 4d 24 lea rcx, QWORD PTR _Lock$6[rbp] - 0007d ff 15 00 00 00 - 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z - -; 1159 : _Orphan_me(); + 00035 48 8b 00 mov rax, QWORD PTR [rax] + 00038 48 89 45 08 mov QWORD PTR _Parent_proxy$1[rbp], rax - 00083 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0008a e8 00 00 00 00 call ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me - -; 1160 : _Mynextiter = _Parent_proxy->_Myfirstiter; +; 1137 : if (_Myproxy != _Parent_proxy) { // change parentage - 0008f 48 8b 85 40 01 + 0003c 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00096 48 8b 4d 08 mov rcx, QWORD PTR _Parent_proxy$5[rbp] - 0009a 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 0009e 48 89 48 08 mov QWORD PTR [rax+8], rcx - -; 1161 : _Parent_proxy->_Myfirstiter = this; - - 000a2 48 8b 45 08 mov rax, QWORD PTR _Parent_proxy$5[rbp] - 000a6 48 8b 8d 40 01 + 00043 48 8b 4d 08 mov rcx, QWORD PTR _Parent_proxy$1[rbp] + 00047 48 39 08 cmp QWORD PTR [rax], rcx + 0004a 74 10 je SHORT $LN4@Adopt + +; 1138 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 1139 : if (_STD is_constant_evaluated()) { +; 1140 : _Adopt_unlocked(_Parent_proxy); +; 1141 : } else +; 1142 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 1143 : { +; 1144 : _Adopt_locked(_Parent_proxy); + + 0004c 48 8b 55 08 mov rdx, QWORD PTR _Parent_proxy$1[rbp] + 00050 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 48 08 mov QWORD PTR [rax+8], rcx - -; 1162 : _Myproxy = _Parent_proxy; - - 000b1 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 000b8 48 8b 4d 08 mov rcx, QWORD PTR _Parent_proxy$5[rbp] - 000bc 48 89 08 mov QWORD PTR [rax], rcx - -; 1163 : } - - 000bf 48 8d 4d 24 lea rcx, QWORD PTR _Lock$6[rbp] - 000c3 ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 00057 e8 00 00 00 00 call ?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z ; std::_Iterator_base12::_Adopt_locked $LN4@Adopt: -; 1164 : -; 1165 : #else // _ITERATOR_DEBUG_LEVEL == 2 -; 1166 : _Myproxy = _Parent_proxy; -; 1167 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1168 : } else { +; 1145 : } +; 1146 : } +; 1147 : } else { // no future parent, just disown current parent - 000c9 eb 25 jmp SHORT $LN3@Adopt + 0005c eb 0c jmp SHORT $LN3@Adopt $LN2@Adopt: -; 1169 : // no future parent, just disown current parent -; 1170 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1171 : _Lockit _Lock(_LOCK_DEBUG); - - 000cb ba 03 00 00 00 mov edx, 3 - 000d0 48 8d 4d 44 lea rcx, QWORD PTR _Lock$7[rbp] - 000d4 ff 15 00 00 00 - 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z - -; 1172 : _Orphan_me(); +; 1148 : _Orphan_me_v2(); - 000da 48 8b 8d 40 01 + 0005e 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000e1 e8 00 00 00 00 call ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me - -; 1173 : #else // _ITERATOR_DEBUG_LEVEL == 2 -; 1174 : _Myproxy = nullptr; -; 1175 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1176 : } - - 000e6 48 8d 4d 44 lea rcx, QWORD PTR _Lock$7[rbp] - 000ea ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 00065 e8 00 00 00 00 call ?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me_v2 $LN3@Adopt: -; 1177 : } +; 1149 : } +; 1150 : } - 000f0 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000f4 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z$rtcFrameData - 000fb e8 00 00 00 00 call _RTC_CheckStackVars - 00100 90 npad 1 - 00101 48 8b 8d 18 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00108 48 33 cd xor rcx, rbp - 0010b e8 00 00 00 00 call __security_check_cookie - 00110 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 00117 5f pop rdi - 00118 5d pop rbp - 00119 c3 ret 0 + 0006a 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00071 5f pop rdi + 00072 5d pop rbp + 00073 c3 ret 0 ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z ENDP ; std::_Iterator_base12::_Adopt _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??1_Iterator_base12@std@@QEAA@XZ _TEXT SEGMENT -_Lock$ = 4 -__$ArrayPad$ = 216 -this$ = 256 +this$ = 224 ??1_Iterator_base12@std@@QEAA@XZ PROC ; std::_Iterator_base12::~_Iterator_base12, COMDAT -; 1144 : ~_Iterator_base12() noexcept { +; 1130 : _CONSTEXPR20_CONTAINER ~_Iterator_base12() 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 + 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 fc mov rdi, rsp - 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002a 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 d8 00 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1145 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1146 : _Lockit _Lock(_LOCK_DEBUG); +; 1131 : _Orphan_me_v2(); - 00047 ba 03 00 00 00 mov edx, 3 - 0004c 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] - 00050 ff 15 00 00 00 - 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z - -; 1147 : _Orphan_me(); - - 00056 48 8b 8d 00 01 + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0005d e8 00 00 00 00 call ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me + 00026 e8 00 00 00 00 call ?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me_v2 -; 1148 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1149 : } +; 1132 : } - 00062 48 8d 4d 04 lea rcx, QWORD PTR _Lock$[rbp] - 00066 ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ - 0006c 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00070 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??1_Iterator_base12@std@@QEAA@XZ$rtcFrameData - 00077 e8 00 00 00 00 call _RTC_CheckStackVars - 0007c 90 npad 1 - 0007d 48 8b 8d d8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00084 48 33 cd xor rcx, rbp - 00087 e8 00 00 00 00 call __security_check_cookie - 0008c 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00093 5f pop rdi - 00094 5d pop rbp - 00095 c3 ret 0 + 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 ??1_Iterator_base12@std@@QEAA@XZ ENDP ; std::_Iterator_base12::~_Iterator_base12 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z _TEXT SEGMENT -_Lock$4 = 4 -__$ArrayPad$ = 216 -this$ = 256 -_Right$ = 264 +this$ = 224 +_Right$ = 232 ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z PROC ; std::_Iterator_base12::operator=, COMDAT -; 1127 : _Iterator_base12& operator=(const _Iterator_base12& _Right) noexcept { +; 1114 : _CONSTEXPR20_CONTAINER _Iterator_base12& operator=(const _Iterator_base12& _Right) noexcept { $LN6: 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 + 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 8b fc mov rdi, rsp - 0001b b9 42 00 00 00 mov ecx, 66 ; 00000042H - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002f 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00036 48 33 c5 xor rax, rbp - 00039 48 89 85 d8 00 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00040 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00047 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1128 : if (_Myproxy != _Right._Myproxy) { +; 1115 : if (_Myproxy != _Right._Myproxy) { - 0004c 48 8b 85 00 01 + 00024 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00053 48 8b 8d 08 01 + 0002b 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Right$[rbp] - 0005a 48 8b 09 mov rcx, QWORD PTR [rcx] - 0005d 48 39 08 cmp QWORD PTR [rax], rcx - 00060 74 4d je SHORT $LN2@operator + 00032 48 8b 09 mov rcx, QWORD PTR [rcx] + 00035 48 39 08 cmp QWORD PTR [rax], rcx + 00038 74 34 je SHORT $LN2@operator -; 1129 : if (_Right._Myproxy) { +; 1116 : if (_Right._Myproxy) { - 00062 48 8b 85 08 01 + 0003a 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Right$[rbp] - 00069 48 83 38 00 cmp QWORD PTR [rax], 0 - 0006d 74 1b je SHORT $LN3@operator + 00041 48 83 38 00 cmp QWORD PTR [rax], 0 + 00045 74 1b je SHORT $LN3@operator -; 1130 : _Adopt(_Right._Myproxy->_Mycont); +; 1117 : _Adopt(_Right._Myproxy->_Mycont); - 0006f 48 8b 85 08 01 + 00047 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Right$[rbp] - 00076 48 8b 00 mov rax, QWORD PTR [rax] - 00079 48 8b 10 mov rdx, QWORD PTR [rax] - 0007c 48 8b 8d 00 01 + 0004e 48 8b 00 mov rax, QWORD PTR [rax] + 00051 48 8b 10 mov rdx, QWORD PTR [rax] + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00083 e8 00 00 00 00 call ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z ; std::_Iterator_base12::_Adopt + 0005b e8 00 00 00 00 call ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z ; std::_Iterator_base12::_Adopt -; 1131 : } else { // becoming invalid, disown current parent +; 1118 : } else { // becoming invalid, disown current parent - 00088 eb 25 jmp SHORT $LN2@operator + 00060 eb 0c jmp SHORT $LN2@operator $LN3@operator: -; 1132 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1133 : _Lockit _Lock(_LOCK_DEBUG); - - 0008a ba 03 00 00 00 mov edx, 3 - 0008f 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] - 00093 ff 15 00 00 00 - 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z - -; 1134 : _Orphan_me(); +; 1119 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1120 : _Orphan_me_v2(); - 00099 48 8b 8d 00 01 + 00062 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 000a0 e8 00 00 00 00 call ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me - -; 1135 : #else // _ITERATOR_DEBUG_LEVEL == 2 -; 1136 : _Myproxy = nullptr; -; 1137 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1138 : } - - 000a5 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] - 000a9 ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 00069 e8 00 00 00 00 call ?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me_v2 $LN2@operator: -; 1139 : } -; 1140 : -; 1141 : return *this; +; 1121 : #else // _ITERATOR_DEBUG_LEVEL == 2 +; 1122 : _Myproxy = nullptr; +; 1123 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1124 : } +; 1125 : } +; 1126 : return *this; - 000af 48 8b 85 00 01 + 0006e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] -; 1142 : } +; 1127 : } - 000b6 48 8b f8 mov rdi, rax - 000b9 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000bd 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z$rtcFrameData - 000c4 e8 00 00 00 00 call _RTC_CheckStackVars - 000c9 48 8b c7 mov rax, rdi - 000cc 48 8b 8d d8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000d3 48 33 cd xor rcx, rbp - 000d6 e8 00 00 00 00 call __security_check_cookie - 000db 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 000e2 5f pop rdi - 000e3 5d pop rbp - 000e4 c3 ret 0 + 00075 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0007c 5f pop rdi + 0007d 5d pop rbp + 0007e c3 ret 0 ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z ENDP ; std::_Iterator_base12::operator= _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??0_Iterator_base12@std@@QEAA@AEBU01@@Z _TEXT SEGMENT this$ = 224 _Right$ = 232 ??0_Iterator_base12@std@@QEAA@AEBU01@@Z PROC ; std::_Iterator_base12::_Iterator_base12, COMDAT -; 1123 : _Iterator_base12(const _Iterator_base12& _Right) noexcept : _Myproxy(nullptr), _Mynextiter(nullptr) { +; 1110 : _CONSTEXPR20_CONTAINER _Iterator_base12(const _Iterator_base12& _Right) noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -18591,51 +18062,119 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 85 e0 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1113 : +; 1114 : _CONSTEXPR20_CONTAINER _Iterator_base12& operator=(const _Iterator_base12& _Right) noexcept { +; 1115 : if (_Myproxy != _Right._Myproxy) { +; 1116 : if (_Right._Myproxy) { +; 1117 : _Adopt(_Right._Myproxy->_Mycont); +; 1118 : } else { // becoming invalid, disown current parent +; 1119 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1120 : _Orphan_me_v2(); +; 1121 : #else // _ITERATOR_DEBUG_LEVEL == 2 +; 1122 : _Myproxy = nullptr; +; 1123 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1124 : } +; 1125 : } +; 1126 : return *this; +; 1127 : } +; 1128 : +; 1129 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1130 : _CONSTEXPR20_CONTAINER ~_Iterator_base12() noexcept { +; 1131 : _Orphan_me_v2(); +; 1132 : } +; 1133 : +; 1134 : _CONSTEXPR20_CONTAINER void _Adopt(const _Container_base12* _Parent) noexcept { +; 1135 : if (_Parent) { // have a parent, do adoption +; 1136 : _Container_proxy* _Parent_proxy = _Parent->_Myproxy; +; 1137 : if (_Myproxy != _Parent_proxy) { // change parentage +; 1138 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 1139 : if (_STD is_constant_evaluated()) { +; 1140 : _Adopt_unlocked(_Parent_proxy); +; 1141 : } else +; 1142 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 1143 : { +; 1144 : _Adopt_locked(_Parent_proxy); +; 1145 : } +; 1146 : } +; 1147 : } else { // no future parent, just disown current parent +; 1148 : _Orphan_me_v2(); +; 1149 : } +; 1150 : } +; 1151 : +; 1152 : _CONSTEXPR20_CONTAINER void _Orphan_me_v2() noexcept { +; 1153 : if (_Myproxy) { // adopted, remove self from list +; 1154 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 1155 : if (_STD is_constant_evaluated()) { +; 1156 : _Orphan_me_unlocked(); +; 1157 : } else +; 1158 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 1159 : { +; 1160 : _Orphan_me_locked(); +; 1161 : } +; 1162 : } +; 1163 : } +; 1164 : +; 1165 : #else // ^^^ _ITERATOR_DEBUG_LEVEL == 2 ^^^ / vvv _ITERATOR_DEBUG_LEVEL != 2 vvv +; 1166 : _CONSTEXPR20_CONTAINER void _Adopt(const _Container_base12* _Parent) noexcept { +; 1167 : if (_Parent) { // have a parent, do adoption +; 1168 : _Myproxy = _Parent->_Myproxy; +; 1169 : } else { // no future parent, just disown current parent +; 1170 : _Myproxy = nullptr; +; 1171 : } +; 1172 : } +; 1173 : #endif // _ITERATOR_DEBUG_LEVEL != 2 +; 1174 : +; 1175 : _CONSTEXPR20_CONTAINER const _Container_base12* _Getcont() const noexcept { +; 1176 : return _Myproxy ? _Myproxy->_Mycont : nullptr; +; 1177 : } +; 1178 : +; 1179 : static constexpr bool _Unwrap_when_unverified = _ITERATOR_DEBUG_LEVEL == 0; +; 1180 : +; 1181 : mutable _Container_proxy* _Myproxy = nullptr; + + 00024 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 c7 00 00 00 + 0002b 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 - 00049 48 8b 85 e0 00 + +; 1182 : mutable _Iterator_base12* _Mynextiter = nullptr; + + 00032 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00050 48 c7 40 08 00 + 00039 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 -; 1124 : *this = _Right; +; 1111 : *this = _Right; - 00058 48 8b 95 e8 00 + 00041 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Right$[rbp] - 0005f 48 8b 8d e0 00 + 00048 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00066 e8 00 00 00 00 call ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z ; std::_Iterator_base12::operator= + 0004f e8 00 00 00 00 call ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z ; std::_Iterator_base12::operator= -; 1125 : } +; 1112 : } - 0006b 48 8b 85 e0 00 + 00054 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00072 48 8d a5 c8 00 + 0005b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00079 5f pop rdi - 0007a 5d pop rbp - 0007b c3 ret 0 + 00062 5f pop rdi + 00063 5d pop rbp + 00064 c3 ret 0 ??0_Iterator_base12@std@@QEAA@AEBU01@@Z ENDP ; std::_Iterator_base12::_Iterator_base12 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??0_Iterator_base12@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 ??0_Iterator_base12@std@@QEAA@XZ PROC ; std::_Iterator_base12::_Iterator_base12, COMDAT -; 1121 : _Iterator_base12() noexcept : _Myproxy(nullptr), _Mynextiter(nullptr) {} // construct orphaned iterator +; 1108 : _CONSTEXPR20_CONTAINER _Iterator_base12() noexcept = default; // construct orphaned iterator $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -18644,156 +18183,303 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1109 : +; 1110 : _CONSTEXPR20_CONTAINER _Iterator_base12(const _Iterator_base12& _Right) noexcept { +; 1111 : *this = _Right; +; 1112 : } +; 1113 : +; 1114 : _CONSTEXPR20_CONTAINER _Iterator_base12& operator=(const _Iterator_base12& _Right) noexcept { +; 1115 : if (_Myproxy != _Right._Myproxy) { +; 1116 : if (_Right._Myproxy) { +; 1117 : _Adopt(_Right._Myproxy->_Mycont); +; 1118 : } else { // becoming invalid, disown current parent +; 1119 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1120 : _Orphan_me_v2(); +; 1121 : #else // _ITERATOR_DEBUG_LEVEL == 2 +; 1122 : _Myproxy = nullptr; +; 1123 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1124 : } +; 1125 : } +; 1126 : return *this; +; 1127 : } +; 1128 : +; 1129 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1130 : _CONSTEXPR20_CONTAINER ~_Iterator_base12() noexcept { +; 1131 : _Orphan_me_v2(); +; 1132 : } +; 1133 : +; 1134 : _CONSTEXPR20_CONTAINER void _Adopt(const _Container_base12* _Parent) noexcept { +; 1135 : if (_Parent) { // have a parent, do adoption +; 1136 : _Container_proxy* _Parent_proxy = _Parent->_Myproxy; +; 1137 : if (_Myproxy != _Parent_proxy) { // change parentage +; 1138 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 1139 : if (_STD is_constant_evaluated()) { +; 1140 : _Adopt_unlocked(_Parent_proxy); +; 1141 : } else +; 1142 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 1143 : { +; 1144 : _Adopt_locked(_Parent_proxy); +; 1145 : } +; 1146 : } +; 1147 : } else { // no future parent, just disown current parent +; 1148 : _Orphan_me_v2(); +; 1149 : } +; 1150 : } +; 1151 : +; 1152 : _CONSTEXPR20_CONTAINER void _Orphan_me_v2() noexcept { +; 1153 : if (_Myproxy) { // adopted, remove self from list +; 1154 : #ifdef __cpp_lib_constexpr_dynamic_alloc +; 1155 : if (_STD is_constant_evaluated()) { +; 1156 : _Orphan_me_unlocked(); +; 1157 : } else +; 1158 : #endif // __cpp_lib_constexpr_dynamic_alloc +; 1159 : { +; 1160 : _Orphan_me_locked(); +; 1161 : } +; 1162 : } +; 1163 : } +; 1164 : +; 1165 : #else // ^^^ _ITERATOR_DEBUG_LEVEL == 2 ^^^ / vvv _ITERATOR_DEBUG_LEVEL != 2 vvv +; 1166 : _CONSTEXPR20_CONTAINER void _Adopt(const _Container_base12* _Parent) noexcept { +; 1167 : if (_Parent) { // have a parent, do adoption +; 1168 : _Myproxy = _Parent->_Myproxy; +; 1169 : } else { // no future parent, just disown current parent +; 1170 : _Myproxy = nullptr; +; 1171 : } +; 1172 : } +; 1173 : #endif // _ITERATOR_DEBUG_LEVEL != 2 +; 1174 : +; 1175 : _CONSTEXPR20_CONTAINER const _Container_base12* _Getcont() const noexcept { +; 1176 : return _Myproxy ? _Myproxy->_Mycont : nullptr; +; 1177 : } +; 1178 : +; 1179 : static constexpr bool _Unwrap_when_unverified = _ITERATOR_DEBUG_LEVEL == 0; +; 1180 : +; 1181 : mutable _Container_proxy* _Myproxy = nullptr; + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 c7 00 00 00 + 00026 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 - 00044 48 8b 85 e0 00 + +; 1182 : mutable _Iterator_base12* _Mynextiter = nullptr; + + 0002d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004b 48 c7 40 08 00 + 00034 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 00053 48 8b 85 e0 00 + +; 1108 : _CONSTEXPR20_CONTAINER _Iterator_base12() noexcept = default; // construct orphaned iterator + + 0003c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005a 48 8d a5 c8 00 + 00043 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00061 5f pop rdi - 00062 5d pop rbp - 00063 c3 ret 0 + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c c3 ret 0 ??0_Iterator_base12@std@@QEAA@XZ ENDP ; std::_Iterator_base12::_Iterator_base12 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory -; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ +; 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 = 4 -_Pnext$5 = 40 -__$ArrayPad$ = 248 -this$ = 288 -?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT +_Lock$ = 4 +__$ArrayPad$ = 216 +this$ = 256 +?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_locked, COMDAT -; 1205 : inline void _Container_base12::_Orphan_all() noexcept { +; 1095 : void _Orphan_all_locked() noexcept { -$LN7: +$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 28 01 - 00 00 sub rsp, 296 ; 00000128H + 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 8b fc mov rdi, rsp - 00016 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 48 - 01 00 00 mov rcx, QWORD PTR [rsp+328] - 0002a 48 8b 05 00 00 + 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 - 00031 48 33 c5 xor rax, rbp - 00034 48 89 85 f8 00 + 00033 48 33 c5 xor rax, rbp + 00036 48 89 85 d8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003b 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1206 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1207 : if (_Myproxy) { // proxy allocated, drain it +; 1096 : _Lockit _Lock(_LOCK_DEBUG); - 00047 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 0004e 48 83 38 00 cmp QWORD PTR [rax], 0 - 00052 74 6b je SHORT $LN5@Orphan_all + 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 -; 1208 : _Lockit _Lock(_LOCK_DEBUG); +; 1097 : _Orphan_all_unlocked(); - 00054 ba 03 00 00 00 mov edx, 3 - 00059 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] - 0005d ff 15 00 00 00 - 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z + 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 -; 1209 : -; 1210 : for (auto _Pnext = &_Myproxy->_Myfirstiter; *_Pnext; *_Pnext = (*_Pnext)->_Mynextiter) { +; 1098 : } - 00063 48 8b 85 20 01 + 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] - 0006a 48 8b 00 mov rax, QWORD PTR [rax] - 0006d 48 83 c0 08 add rax, 8 - 00071 48 89 45 28 mov QWORD PTR _Pnext$5[rbp], rax - 00075 eb 12 jmp SHORT $LN4@Orphan_all + 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: - 00077 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] - 0007b 48 8b 00 mov rax, QWORD PTR [rax] - 0007e 48 8b 4d 28 mov rcx, QWORD PTR _Pnext$5[rbp] - 00082 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00086 48 89 01 mov QWORD PTR [rcx], rax + 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: - 00089 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] - 0008d 48 83 38 00 cmp QWORD PTR [rax], 0 - 00091 74 10 je SHORT $LN3@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 -; 1211 : (*_Pnext)->_Myproxy = nullptr; +; 1222 : _Pnext->_Myproxy = nullptr; - 00093 48 8b 45 28 mov rax, QWORD PTR _Pnext$5[rbp] - 00097 48 8b 00 mov rax, QWORD PTR [rax] - 0009a 48 c7 00 00 00 + 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 -; 1212 : } +; 1223 : } - 000a1 eb d4 jmp SHORT $LN2@Orphan_all + 0005d eb d4 jmp SHORT $LN2@Orphan_all $LN3@Orphan_all: -; 1213 : -; 1214 : _Myproxy->_Myfirstiter = nullptr; +; 1224 : _Myproxy->_Myfirstiter = nullptr; - 000a3 48 8b 85 20 01 + 0005f 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000aa 48 8b 00 mov rax, QWORD PTR [rax] - 000ad 48 c7 40 08 00 + 00066 48 8b 00 mov rax, QWORD PTR [rax] + 00069 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 -; 1215 : } +; 1225 : } - 000b5 48 8d 4d 04 lea rcx, QWORD PTR _Lock$4[rbp] - 000b9 ff 15 00 00 00 - 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ -$LN5@Orphan_all: + 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 -; 1216 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1217 : } +; 1227 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all() noexcept { - 000bf 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000c3 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData - 000ca e8 00 00 00 00 call _RTC_CheckStackVars - 000cf 90 npad 1 - 000d0 48 8b 8d f8 00 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000d7 48 33 cd xor rcx, rbp - 000da e8 00 00 00 00 call __security_check_cookie - 000df 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 000e6 5f pop rdi - 000e7 5d pop rbp - 000e8 c3 ret 0 +$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.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??0_Container_base12@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 ??0_Container_base12@std@@QEAA@XZ PROC ; std::_Container_base12::_Container_base12, COMDAT -; 1092 : _Container_base12() noexcept : _Myproxy(nullptr) {} +; 1064 : _CONSTEXPR20_CONTAINER _Container_base12() noexcept = default; $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -18802,37 +18488,61 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1065 : +; 1066 : _Container_base12(const _Container_base12&) = delete; +; 1067 : _Container_base12& operator=(const _Container_base12&) = delete; +; 1068 : +; 1069 : _CONSTEXPR20_CONTAINER void _Orphan_all() noexcept; +; 1070 : _CONSTEXPR20_CONTAINER void _Swap_proxy_and_iterators(_Container_base12&) noexcept; +; 1071 : +; 1072 : template +; 1073 : _CONSTEXPR20_CONTAINER void _Alloc_proxy(_Alloc&& _Al) { +; 1074 : _Container_proxy* const _New_proxy = _Unfancy(_Al.allocate(1)); +; 1075 : _Construct_in_place(*_New_proxy, this); +; 1076 : _Myproxy = _New_proxy; +; 1077 : _New_proxy->_Mycont = this; +; 1078 : } +; 1079 : +; 1080 : template +; 1081 : _CONSTEXPR20_CONTAINER void _Reload_proxy(_Alloc&& _Old_alloc, _Alloc&& _New_alloc) { +; 1082 : // pre: no iterators refer to the existing proxy +; 1083 : _Container_proxy* const _New_proxy = _Unfancy(_New_alloc.allocate(1)); +; 1084 : _Construct_in_place(*_New_proxy, this); +; 1085 : _New_proxy->_Mycont = this; +; 1086 : _Delete_plain_internal(_Old_alloc, _STD exchange(_Myproxy, _New_proxy)); +; 1087 : } +; 1088 : +; 1089 : _Container_proxy* _Myproxy = nullptr; + + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 c7 00 00 00 + 00026 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 - 00044 48 8b 85 e0 00 + +; 1064 : _CONSTEXPR20_CONTAINER _Container_base12() noexcept = default; + + 0002d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004b 48 8d a5 c8 00 + 00034 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 + 0003b 5f pop rdi + 0003c 5d pop rbp + 0003d c3 ret 0 ??0_Container_base12@std@@QEAA@XZ ENDP ; std::_Container_base12::_Container_base12 _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z _TEXT SEGMENT this$ = 224 _Mycont_$ = 232 ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z PROC ; std::_Container_proxy::_Container_proxy, COMDAT -; 1084 : _Container_proxy(_Container_base12* _Mycont_) noexcept : _Mycont(_Mycont_), _Myfirstiter(nullptr) {} +; 1056 : _CONSTEXPR20_CONTAINER _Container_proxy(_Container_base12* _Mycont_) noexcept : _Mycont(_Mycont_) {} $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -18842,35 +18552,37 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 85 e0 00 + 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] - 00042 48 8b 8d e8 00 + 0002b 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Mycont_$[rbp] - 00049 48 89 08 mov QWORD PTR [rax], rcx - 0004c 48 8b 85 e0 00 + 00032 48 89 08 mov QWORD PTR [rax], rcx + +; 1057 : +; 1058 : const _Container_base12* _Mycont = nullptr; +; 1059 : mutable _Iterator_base12* _Myfirstiter = nullptr; + + 00035 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00053 48 c7 40 08 00 + 0003c 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 0005b 48 8b 85 e0 00 + +; 1056 : _CONSTEXPR20_CONTAINER _Container_proxy(_Container_base12* _Mycont_) noexcept : _Mycont(_Mycont_) {} + + 00044 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00062 48 8d a5 c8 00 + 0004b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00069 5f pop rdi - 0006a 5d pop rbp - 0006b c3 ret 0 + 00052 5f pop rdi + 00053 5d pop rbp + 00054 c3 ret 0 ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z ENDP ; std::_Container_proxy::_Container_proxy _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; 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 @@ -18881,7 +18593,7 @@ _Ptr$ = 352 _Bytes$ = 360 ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z PROC ; std::_Adjust_manually_vector_aligned, COMDAT -; 132 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { +; 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 @@ -18891,202 +18603,196 @@ $LN21: 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 8b fc mov rdi, rsp - 0001b b9 5e 00 00 00 mov ecx, 94 ; 0000005eH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 98 - 01 00 00 mov rcx, QWORD PTR [rsp+408] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 133 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete -; 134 : _Bytes += _Non_user_size; +; 154 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete +; 155 : _Bytes += _Non_user_size; - 0003b 48 8b 85 68 01 + 00024 48 8b 85 68 01 00 00 mov rax, QWORD PTR _Bytes$[rbp] - 00042 48 8b 00 mov rax, QWORD PTR [rax] - 00045 48 83 c0 2f add rax, 47 ; 0000002fH - 00049 48 8b 8d 68 01 + 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] - 00050 48 89 01 mov QWORD PTR [rcx], rax + 00039 48 89 01 mov QWORD PTR [rcx], rax -; 135 : -; 136 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); +; 156 : +; 157 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); - 00053 48 8b 85 60 01 + 0003c 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0005a 48 8b 00 mov rax, QWORD PTR [rax] - 0005d 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax + 00043 48 8b 00 mov rax, QWORD PTR [rax] + 00046 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax -; 137 : const uintptr_t _Ptr_container = _Ptr_user[-1]; +; 158 : const uintptr_t _Ptr_container = _Ptr_user[-1]; - 00061 b8 08 00 00 00 mov eax, 8 - 00066 48 6b c0 ff imul rax, rax, -1 - 0006a 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] - 0006e 48 8b 04 01 mov rax, QWORD PTR [rcx+rax] - 00072 48 89 45 28 mov QWORD PTR _Ptr_container$[rbp], rax + 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: -; 138 : -; 139 : // If the following asserts, it likely means that we are performing -; 140 : // an aligned delete on memory coming from an unaligned allocation. -; 141 : _STL_ASSERT(_Ptr_user[-2] == _Big_allocation_sentinel, "invalid argument"); +; 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"); - 00076 b8 08 00 00 00 mov eax, 8 - 0007b 48 6b c0 fe imul rax, rax, -2 - 0007f 48 8b 4d 08 mov rcx, QWORD PTR _Ptr_user$[rbp] - 00083 48 ba fa fa fa + 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 - 0008d 48 39 14 01 cmp QWORD PTR [rcx+rax], rdx - 00091 75 02 jne SHORT $LN14@Adjust_man - 00093 eb 77 jmp SHORT $LN15@Adjust_man + 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: - 00095 8b 05 00 00 00 + 0007e 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 0009b 83 c0 09 add eax, 9 - 0009e 48 8d 0d 00 00 + 00084 83 c0 09 add eax, 9 + 00087 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ - 000a5 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx - 000aa 48 8d 0d 00 00 + 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@ - 000b1 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 000b6 45 33 c9 xor r9d, r9d - 000b9 44 8b c0 mov r8d, eax - 000bc 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 000c3 b9 02 00 00 00 mov ecx, 2 - 000c8 ff 15 00 00 00 + 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 - 000ce 83 f8 01 cmp eax, 1 - 000d1 75 03 jne SHORT $LN19@Adjust_man - 000d3 cc int 3 - 000d4 33 c0 xor eax, eax + 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: - 000d6 8b 05 00 00 00 + 000bf 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 000dc 83 c0 09 add eax, 9 - 000df 48 c7 44 24 20 + 000c5 83 c0 09 add eax, 9 + 000c8 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 000e8 44 8b c8 mov r9d, eax - 000eb 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 000f2 48 8d 15 00 00 + 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@ - 000f9 48 8d 0d 00 00 + 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@ - 00100 ff 15 00 00 00 + 000e9 ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 00106 33 c0 xor eax, eax - 00108 85 c0 test eax, eax - 0010a 75 89 jne SHORT $LN7@Adjust_man + 000ef 33 c0 xor eax, eax + 000f1 85 c0 test eax, eax + 000f3 75 89 jne SHORT $LN7@Adjust_man $LN15@Adjust_man: - 0010c 33 c0 xor eax, eax - 0010e 85 c0 test eax, eax - 00110 0f 85 60 ff ff + 000f5 33 c0 xor eax, eax + 000f7 85 c0 test eax, eax + 000f9 0f 85 60 ff ff ff jne $LN4@Adjust_man -; 142 : -; 143 : // Extra paranoia on aligned allocation/deallocation; ensure _Ptr_container is -; 144 : // in range [_Min_back_shift, _Non_user_size] -; 145 : #ifdef _DEBUG -; 146 : constexpr uintptr_t _Min_back_shift = 2 * sizeof(void*); +; 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*); - 00116 48 c7 45 48 10 + 000ff 48 c7 45 48 10 00 00 00 mov QWORD PTR _Min_back_shift$[rbp], 16 -; 147 : #else // ^^^ _DEBUG ^^^ // vvv !_DEBUG vvv -; 148 : constexpr uintptr_t _Min_back_shift = sizeof(void*); -; 149 : #endif // _DEBUG -; 150 : const uintptr_t _Back_shift = reinterpret_cast(_Ptr) - _Ptr_container; +; 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(_Ptr) - _Ptr_container; - 0011e 48 8b 85 60 01 + 00107 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00125 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] - 00129 48 8b 00 mov rax, QWORD PTR [rax] - 0012c 48 2b c1 sub rax, rcx - 0012f 48 89 45 68 mov QWORD PTR _Back_shift$[rbp], rax + 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: -; 151 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); +; 172 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); - 00133 48 83 7d 68 10 cmp QWORD PTR _Back_shift$[rbp], 16 - 00138 72 09 jb SHORT $LN16@Adjust_man - 0013a 48 83 7d 68 2f cmp QWORD PTR _Back_shift$[rbp], 47 ; 0000002fH - 0013f 77 02 ja SHORT $LN16@Adjust_man - 00141 eb 77 jmp SHORT $LN17@Adjust_man + 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: - 00143 8b 05 00 00 00 + 0012c 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 00149 83 c0 13 add eax, 19 - 0014c 48 8d 0d 00 00 + 00132 83 c0 13 add eax, 19 + 00135 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BB@FCMFBGOM@invalid?5argument@ - 00153 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx - 00158 48 8d 0d 00 00 + 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@ - 0015f 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 00164 45 33 c9 xor r9d, r9d - 00167 44 8b c0 mov r8d, eax - 0016a 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00171 b9 02 00 00 00 mov ecx, 2 - 00176 ff 15 00 00 00 + 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 - 0017c 83 f8 01 cmp eax, 1 - 0017f 75 03 jne SHORT $LN20@Adjust_man - 00181 cc int 3 - 00182 33 c0 xor eax, eax + 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: - 00184 8b 05 00 00 00 + 0016d 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA - 0018a 83 c0 13 add eax, 19 - 0018d 48 c7 44 24 20 + 00173 83 c0 13 add eax, 19 + 00176 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 00196 44 8b c8 mov r9d, eax - 00199 4c 8d 05 00 00 - 00 00 lea r8, OFFSET FLAT:??_C@_1NA@FEEOBALC@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ - 001a0 48 8d 15 00 00 + 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@ - 001a7 48 8d 0d 00 00 + 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@ - 001ae ff 15 00 00 00 + 00197 ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 001b4 33 c0 xor eax, eax - 001b6 85 c0 test eax, eax - 001b8 75 89 jne SHORT $LN13@Adjust_man + 0019d 33 c0 xor eax, eax + 0019f 85 c0 test eax, eax + 001a1 75 89 jne SHORT $LN13@Adjust_man $LN17@Adjust_man: - 001ba 33 c0 xor eax, eax - 001bc 85 c0 test eax, eax - 001be 0f 85 6f ff ff + 001a3 33 c0 xor eax, eax + 001a5 85 c0 test eax, eax + 001a7 0f 85 6f ff ff ff jne $LN10@Adjust_man -; 152 : _Ptr = reinterpret_cast(_Ptr_container); +; 173 : _Ptr = reinterpret_cast(_Ptr_container); - 001c4 48 8b 85 60 01 + 001ad 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 001cb 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] - 001cf 48 89 08 mov QWORD PTR [rax], rcx + 001b4 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 001b8 48 89 08 mov QWORD PTR [rax], rcx -; 153 : } +; 174 : } - 001d2 48 8d a5 48 01 + 001bb 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] - 001d9 5f pop rdi - 001da 5d pop rbp - 001db c3 ret 0 + 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)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory ; COMDAT ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z _TEXT SEGMENT _Bytes$ = 224 ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z PROC ; std::_Default_allocate_traits::_Allocate, COMDAT -; 76 : __declspec(allocator) static void* _Allocate(const size_t _Bytes) { +; 84 : void* _Allocate(const size_t _Bytes) { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -19095,33 +18801,27 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 77 : return ::operator new(_Bytes); - - 00036 48 8b 8d e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 85 : return ::operator new(_Bytes); + + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Bytes$[rbp] - 0003d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00026 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new -; 78 : } +; 86 : } - 00042 48 8d a5 c8 00 + 0002b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00049 5f pop rdi - 0004a 5d pop rbp - 0004b c3 ret 0 + 00032 5f pop rdi + 00033 5d pop rbp + 00034 c3 ret 0 ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ENDP ; std::_Default_allocate_traits::_Allocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\exception +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\exception ; COMDAT ?_Throw_bad_array_new_length@std@@YAXXZ _TEXT SEGMENT $T1 = 200 @@ -19135,33 +18835,29 @@ $LN3: 00003 48 81 ec 18 01 00 00 sub rsp, 280 ; 00000118H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8b fc mov rdi, rsp - 00012 b9 46 00 00 00 mov ecx, 70 ; 00000046H - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E4152856_exception - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__89F7010A_exception + 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 321 : _THROW(bad_array_new_length{}); - 0002a 48 8d 8d c8 00 + 0001b 48 8d 8d c8 00 00 00 lea rcx, QWORD PTR $T1[rbp] - 00031 e8 00 00 00 00 call ??0bad_array_new_length@std@@QEAA@XZ ; std::bad_array_new_length::bad_array_new_length - 00036 48 8d 15 00 00 + 00022 e8 00 00 00 00 call ??0bad_array_new_length@std@@QEAA@XZ ; std::bad_array_new_length::bad_array_new_length + 00027 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:_TI3?AVbad_array_new_length@std@@ - 0003d 48 8d 8d c8 00 + 0002e 48 8d 8d c8 00 00 00 lea rcx, QWORD PTR $T1[rbp] - 00044 e8 00 00 00 00 call _CxxThrowException + 00035 e8 00 00 00 00 call _CxxThrowException $LN2@Throw_bad_: ; 322 : } - 00049 48 8d a5 f8 00 + 0003a 48 8d a5 f8 00 00 00 lea rsp, QWORD PTR [rbp+248] - 00050 5f pop rdi - 00051 5d pop rbp - 00052 c3 ret 0 + 00041 5f pop rdi + 00042 5d pop rbp + 00043 c3 ret 0 ?_Throw_bad_array_new_length@std@@YAXXZ ENDP ; std::_Throw_bad_array_new_length _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19178,32 +18874,26 @@ $LN4: 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 fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8b 8d e0 00 + 00017 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00035 e8 00 00 00 00 call ??1bad_array_new_length@std@@UEAA@XZ - 0003a 8b 85 e8 00 00 + 0001e e8 00 00 00 00 call ??1bad_array_new_length@std@@UEAA@XZ + 00023 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00040 83 e0 01 and eax, 1 - 00043 85 c0 test eax, eax - 00045 74 11 je SHORT $LN2@scalar - 00047 ba 18 00 00 00 mov edx, 24 - 0004c 48 8b 8d e0 00 + 00029 83 e0 01 and eax, 1 + 0002c 85 c0 test eax, eax + 0002e 74 11 je SHORT $LN2@scalar + 00030 ba 18 00 00 00 mov edx, 24 + 00035 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00058 48 8b 85 e0 00 + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8d a5 c8 00 + 00048 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 + 0004f 5f pop rdi + 00050 5d pop rbp + 00051 c3 ret 0 ??_Gbad_array_new_length@std@@UEAAPEAXI@Z ENDP ; std::bad_array_new_length::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19220,29 +18910,23 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8b 95 e8 00 + 00018 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR __that$[rbp] - 00036 48 8b 8d e0 00 + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003d e8 00 00 00 00 call ??0bad_alloc@std@@QEAA@AEBV01@@Z - 00042 48 8b 85 e0 00 + 00026 e8 00 00 00 00 call ??0bad_alloc@std@@QEAA@AEBV01@@Z + 0002b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00049 48 8d 0d 00 00 + 00032 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_array_new_length@std@@6B@ - 00050 48 89 08 mov QWORD PTR [rax], rcx - 00053 48 8b 85 e0 00 + 00039 48 89 08 mov QWORD PTR [rax], rcx + 0003c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005a 48 8d a5 c8 00 + 00043 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00061 5f pop rdi - 00062 5d pop rbp - 00063 c3 ret 0 + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c c3 ret 0 ??0bad_array_new_length@std@@QEAA@AEBV01@@Z ENDP ; std::bad_array_new_length::bad_array_new_length _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19257,24 +18941,18 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8b 8d e0 00 + 00013 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00031 e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ - 00036 48 8d a5 c8 00 + 0001a e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003d 5f pop rdi - 0003e 5d pop rbp - 0003f c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ??1bad_array_new_length@std@@UEAA@XZ ENDP ; std::bad_array_new_length::~bad_array_new_length _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h ; COMDAT ??0bad_array_new_length@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 @@ -19289,41 +18967,35 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 140 : : bad_alloc("bad array new length") - 00036 48 8d 15 00 00 + 0001f 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0BF@KINCDENJ@bad?5array?5new?5length@ - 0003d 48 8b 8d e0 00 + 00026 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00044 e8 00 00 00 00 call ??0bad_alloc@std@@AEAA@QEBD@Z ; std::bad_alloc::bad_alloc + 0002d e8 00 00 00 00 call ??0bad_alloc@std@@AEAA@QEBD@Z ; std::bad_alloc::bad_alloc ; 141 : { - 00049 48 8b 85 e0 00 + 00032 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00050 48 8d 0d 00 00 + 00039 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_array_new_length@std@@6B@ - 00057 48 89 08 mov QWORD PTR [rax], rcx + 00040 48 89 08 mov QWORD PTR [rax], rcx ; 142 : } - 0005a 48 8b 85 e0 00 + 00043 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00061 48 8d a5 c8 00 + 0004a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00068 5f pop rdi - 00069 5d pop rbp - 0006a c3 ret 0 + 00051 5f pop rdi + 00052 5d pop rbp + 00053 c3 ret 0 ??0bad_array_new_length@std@@QEAA@XZ ENDP ; std::bad_array_new_length::bad_array_new_length _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19340,32 +19012,26 @@ $LN4: 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 fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8b 8d e0 00 + 00017 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00035 e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ - 0003a 8b 85 e8 00 00 + 0001e e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ + 00023 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00040 83 e0 01 and eax, 1 - 00043 85 c0 test eax, eax - 00045 74 11 je SHORT $LN2@scalar - 00047 ba 18 00 00 00 mov edx, 24 - 0004c 48 8b 8d e0 00 + 00029 83 e0 01 and eax, 1 + 0002c 85 c0 test eax, eax + 0002e 74 11 je SHORT $LN2@scalar + 00030 ba 18 00 00 00 mov edx, 24 + 00035 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00058 48 8b 85 e0 00 + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8d a5 c8 00 + 00048 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 + 0004f 5f pop rdi + 00050 5d pop rbp + 00051 c3 ret 0 ??_Gbad_alloc@std@@UEAAPEAXI@Z ENDP ; std::bad_alloc::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19382,29 +19048,23 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8b 95 e8 00 + 00018 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR __that$[rbp] - 00036 48 8b 8d e0 00 + 0001f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0003d e8 00 00 00 00 call ??0exception@std@@QEAA@AEBV01@@Z ; std::exception::exception - 00042 48 8b 85 e0 00 + 00026 e8 00 00 00 00 call ??0exception@std@@QEAA@AEBV01@@Z ; std::exception::exception + 0002b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00049 48 8d 0d 00 00 + 00032 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_alloc@std@@6B@ - 00050 48 89 08 mov QWORD PTR [rax], rcx - 00053 48 8b 85 e0 00 + 00039 48 89 08 mov QWORD PTR [rax], rcx + 0003c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005a 48 8d a5 c8 00 + 00043 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00061 5f pop rdi - 00062 5d pop rbp - 00063 c3 ret 0 + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c c3 ret 0 ??0bad_alloc@std@@QEAA@AEBV01@@Z ENDP ; std::bad_alloc::bad_alloc _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19419,24 +19079,18 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8b 8d e0 00 + 00013 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00031 e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception - 00036 48 8d a5 c8 00 + 0001a e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception + 0001f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003d 5f pop rdi - 0003e 5d pop rbp - 0003f c3 ret 0 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ??1bad_alloc@std@@UEAA@XZ ENDP ; std::bad_alloc::~bad_alloc _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h ; COMDAT ??0bad_alloc@std@@AEAA@QEBD@Z _TEXT SEGMENT this$ = 224 @@ -19453,43 +19107,37 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 129 : : exception(_Message, 1) - 0003b 41 b8 01 00 00 + 00024 41 b8 01 00 00 00 mov r8d, 1 - 00041 48 8b 95 e8 00 + 0002a 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Message$[rbp] - 00048 48 8b 8d e0 00 + 00031 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0004f e8 00 00 00 00 call ??0exception@std@@QEAA@QEBDH@Z ; std::exception::exception + 00038 e8 00 00 00 00 call ??0exception@std@@QEAA@QEBDH@Z ; std::exception::exception ; 130 : { - 00054 48 8b 85 e0 00 + 0003d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005b 48 8d 0d 00 00 + 00044 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_alloc@std@@6B@ - 00062 48 89 08 mov QWORD PTR [rax], rcx + 0004b 48 89 08 mov QWORD PTR [rax], rcx ; 131 : } - 00065 48 8b 85 e0 00 + 0004e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0006c 48 8d a5 c8 00 + 00055 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00073 5f pop rdi - 00074 5d pop rbp - 00075 c3 ret 0 + 0005c 5f pop rdi + 0005d 5d pop rbp + 0005e c3 ret 0 ??0bad_alloc@std@@AEAA@QEBD@Z ENDP ; std::bad_alloc::bad_alloc _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19506,36 +19154,30 @@ $LN4: 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 fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8b 8d e0 00 + 00017 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00035 e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception - 0003a 8b 85 e8 00 00 + 0001e e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception + 00023 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00040 83 e0 01 and eax, 1 - 00043 85 c0 test eax, eax - 00045 74 11 je SHORT $LN2@scalar - 00047 ba 18 00 00 00 mov edx, 24 - 0004c 48 8b 8d e0 00 + 00029 83 e0 01 and eax, 1 + 0002c 85 c0 test eax, eax + 0002e 74 11 je SHORT $LN2@scalar + 00030 ba 18 00 00 00 mov edx, 24 + 00035 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00058 48 8b 85 e0 00 + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8d a5 c8 00 + 00048 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 + 0004f 5f pop rdi + 00050 5d pop rbp + 00051 c3 ret 0 ??_Gexception@std@@UEAAPEAXI@Z ENDP ; std::exception::`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.27.29110\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h ; COMDAT ?what@exception@std@@UEBAPEBDXZ _TEXT SEGMENT tv69 = 192 @@ -19551,48 +19193,42 @@ $LN5: 00007 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8b fc mov rdi, rsp - 00016 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 95 : return _Data._What ? _Data._What : "Unknown exception"; - 00036 48 8b 85 f0 00 + 0001f 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 00042 74 14 je SHORT $LN3@what - 00044 48 8b 85 f0 00 + 00026 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 0002b 74 14 je SHORT $LN3@what + 0002d 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004b 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0004f 48 89 85 c0 00 + 00034 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00038 48 89 85 c0 00 00 00 mov QWORD PTR tv69[rbp], rax - 00056 eb 0e jmp SHORT $LN4@what + 0003f eb 0e jmp SHORT $LN4@what $LN3@what: - 00058 48 8d 05 00 00 + 00041 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BC@EOODALEL@Unknown?5exception@ - 0005f 48 89 85 c0 00 + 00048 48 89 85 c0 00 00 00 mov QWORD PTR tv69[rbp], rax $LN4@what: - 00066 48 8b 85 c0 00 + 0004f 48 8b 85 c0 00 00 00 mov rax, QWORD PTR tv69[rbp] ; 96 : } - 0006d 48 8d a5 d8 00 + 00056 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 00074 5f pop rdi - 00075 5d pop rbp - 00076 c3 ret 0 + 0005d 5f pop rdi + 0005e 5d pop rbp + 0005f c3 ret 0 ?what@exception@std@@UEBAPEBDXZ ENDP ; std::exception::what _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h ; COMDAT ??1exception@std@@UEAA@XZ _TEXT SEGMENT this$ = 224 @@ -19607,41 +19243,34 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 48 8b 85 e0 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d 48 8d 0d 00 00 + 00026 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ - 00044 48 89 08 mov QWORD PTR [rax], rcx + 0002d 48 89 08 mov QWORD PTR [rax], rcx ; 90 : __std_exception_destroy(&_Data); - 00047 48 8b 85 e0 00 + 00030 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004e 48 83 c0 08 add rax, 8 - 00052 48 8b c8 mov rcx, rax - 00055 e8 00 00 00 00 call __std_exception_destroy - 0005a 90 npad 1 + 00037 48 83 c0 08 add rax, 8 + 0003b 48 8b c8 mov rcx, rax + 0003e e8 00 00 00 00 call __std_exception_destroy ; 91 : } - 0005b 48 8d a5 c8 00 + 00043 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00062 5f pop rdi - 00063 5d pop rbp - 00064 c3 ret 0 + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c c3 ret 0 ??1exception@std@@UEAA@XZ ENDP ; std::exception::~exception _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h ; COMDAT ??0exception@std@@QEAA@AEBV01@@Z _TEXT SEGMENT this$ = 224 @@ -19658,55 +19287,49 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 48 8b 85 e0 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00042 48 8d 0d 00 00 + 0002b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ - 00049 48 89 08 mov QWORD PTR [rax], rcx + 00032 48 89 08 mov QWORD PTR [rax], rcx ; 71 : : _Data() - 0004c 48 8b 85 e0 00 + 00035 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00053 48 83 c0 08 add rax, 8 - 00057 48 8b f8 mov rdi, rax - 0005a 33 c0 xor eax, eax - 0005c b9 10 00 00 00 mov ecx, 16 - 00061 f3 aa rep stosb + 0003c 48 83 c0 08 add rax, 8 + 00040 48 8b f8 mov rdi, rax + 00043 33 c0 xor eax, eax + 00045 b9 10 00 00 00 mov ecx, 16 + 0004a f3 aa rep stosb ; 73 : __std_exception_copy(&_Other._Data, &_Data); - 00063 48 8b 85 e0 00 + 0004c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0006a 48 83 c0 08 add rax, 8 - 0006e 48 8b 8d e8 00 + 00053 48 83 c0 08 add rax, 8 + 00057 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Other$[rbp] - 00075 48 83 c1 08 add rcx, 8 - 00079 48 8b d0 mov rdx, rax - 0007c e8 00 00 00 00 call __std_exception_copy + 0005e 48 83 c1 08 add rcx, 8 + 00062 48 8b d0 mov rdx, rax + 00065 e8 00 00 00 00 call __std_exception_copy ; 74 : } - 00081 48 8b 85 e0 00 + 0006a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00088 48 8d a5 c8 00 + 00071 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0008f 5f pop rdi - 00090 5d pop rbp - 00091 c3 ret 0 + 00078 5f pop rdi + 00079 5d pop rbp + 0007a c3 ret 0 ??0exception@std@@QEAA@AEBV01@@Z ENDP ; std::exception::exception _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_exception.h ; COMDAT ??0exception@std@@QEAA@QEBDH@Z _TEXT SEGMENT this$ = 224 @@ -19725,57 +19348,51 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E75714E4_vcruntime_exception@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 48 8b 85 e0 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00047 48 8d 0d 00 00 + 00030 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ - 0004e 48 89 08 mov QWORD PTR [rax], rcx + 00037 48 89 08 mov QWORD PTR [rax], rcx ; 65 : : _Data() - 00051 48 8b 85 e0 00 + 0003a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00058 48 83 c0 08 add rax, 8 - 0005c 48 8b f8 mov rdi, rax - 0005f 33 c0 xor eax, eax - 00061 b9 10 00 00 00 mov ecx, 16 - 00066 f3 aa rep stosb + 00041 48 83 c0 08 add rax, 8 + 00045 48 8b f8 mov rdi, rax + 00048 33 c0 xor eax, eax + 0004a b9 10 00 00 00 mov ecx, 16 + 0004f f3 aa rep stosb ; 67 : _Data._What = _Message; - 00068 48 8b 85 e0 00 + 00051 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0006f 48 8b 8d e8 00 + 00058 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Message$[rbp] - 00076 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0005f 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 68 : } - 0007a 48 8b 85 e0 00 + 00063 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00081 48 8d a5 c8 00 + 0006a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00088 5f pop rdi - 00089 5d pop rbp - 0008a c3 ret 0 + 00071 5f pop rdi + 00072 5d pop rbp + 00073 c3 ret 0 ??0exception@std@@QEAA@QEBDH@Z ENDP ; std::exception::exception _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\limits +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\limits ; COMDAT ?max@?$numeric_limits@_J@std@@SA_JXZ _TEXT SEGMENT ?max@?$numeric_limits@_J@std@@SA_JXZ PROC ; std::numeric_limits<__int64>::max, COMDAT -; 645 : _NODISCARD static constexpr long long(max)() noexcept { +; 647 : _NODISCARD static constexpr long long(max)() noexcept { $LN3: 00000 40 55 push rbp @@ -19783,26 +19400,22 @@ $LN3: 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8b fc mov rdi, rsp - 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F2870A2C_limits - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__44860E64_limits + 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 646 : return LLONG_MAX; +; 648 : return LLONG_MAX; - 0002a 48 b8 ff ff ff + 0001b 48 b8 ff ff ff ff ff ff ff 7f mov rax, 9223372036854775807 ; 7fffffffffffffffH -; 647 : } +; 649 : } - 00034 48 8d a5 c8 00 + 00025 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0003b 5f pop rdi - 0003c 5d pop rbp - 0003d c3 ret 0 + 0002c 5f pop rdi + 0002d 5d pop rbp + 0002e c3 ret 0 ?max@?$numeric_limits@_J@std@@SA_JXZ ENDP ; std::numeric_limits<__int64>::max _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19825,36 +19438,30 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 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] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19881,75 +19488,75 @@ $LN3: 00016 48 81 ec 58 01 00 00 sub rsp, 344 ; 00000158H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8b fc mov rdi, rsp - 00025 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 78 + 00022 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00027 b9 1e 00 00 00 mov ecx, 30 + 0002c b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00031 f3 ab rep stosd + 00033 48 8b 8c 24 78 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00039 48 8b 05 00 00 + 0003b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00040 48 33 c5 xor rax, rbp - 00043 48 89 85 28 01 + 00042 48 33 c5 xor rax, rbp + 00045 48 89 85 28 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004a 48 8d 0d 00 00 + 0004c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h - 00051 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 957 : int _Result; ; 958 : va_list _ArgList; ; 959 : __crt_va_start(_ArgList, _Format); - 00056 48 8d 85 58 01 + 00058 48 8d 85 58 01 00 00 lea rax, QWORD PTR _Format$[rbp+8] - 0005d 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax + 0005f 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax ; 960 : _Result = _vfprintf_l(stdout, _Format, NULL, _ArgList); - 00061 48 8b 45 28 mov rax, QWORD PTR _ArgList$[rbp] - 00065 48 89 85 18 01 + 00063 48 8b 45 28 mov rax, QWORD PTR _ArgList$[rbp] + 00067 48 89 85 18 01 00 00 mov QWORD PTR tv77[rbp], rax - 0006c b9 01 00 00 00 mov ecx, 1 - 00071 ff 15 00 00 00 + 0006e b9 01 00 00 00 mov ecx, 1 + 00073 ff 15 00 00 00 00 call QWORD PTR __imp___acrt_iob_func - 00077 48 89 85 20 01 + 00079 48 89 85 20 01 00 00 mov QWORD PTR tv75[rbp], rax - 0007e 4c 8b 8d 18 01 + 00080 4c 8b 8d 18 01 00 00 mov r9, QWORD PTR tv77[rbp] - 00085 45 33 c0 xor r8d, r8d - 00088 48 8b 95 50 01 + 00087 45 33 c0 xor r8d, r8d + 0008a 48 8b 95 50 01 00 00 mov rdx, QWORD PTR _Format$[rbp] - 0008f 48 8b 8d 20 01 + 00091 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR tv75[rbp] - 00096 e8 00 00 00 00 call _vfprintf_l - 0009b 89 45 04 mov DWORD PTR _Result$[rbp], eax + 00098 e8 00 00 00 00 call _vfprintf_l + 0009d 89 45 04 mov DWORD PTR _Result$[rbp], eax ; 961 : __crt_va_end(_ArgList); - 0009e 48 c7 45 28 00 + 000a0 48 c7 45 28 00 00 00 00 mov QWORD PTR _ArgList$[rbp], 0 ; 962 : return _Result; - 000a6 8b 45 04 mov eax, DWORD PTR _Result$[rbp] + 000a8 8b 45 04 mov eax, DWORD PTR _Result$[rbp] ; 963 : } - 000a9 8b f8 mov edi, eax - 000ab 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000af 48 8d 15 00 00 + 000ab 8b f8 mov edi, eax + 000ad 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000b1 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:printf$rtcFrameData - 000b6 e8 00 00 00 00 call _RTC_CheckStackVars - 000bb 8b c7 mov eax, edi - 000bd 48 8b 8d 28 01 + 000b8 e8 00 00 00 00 call _RTC_CheckStackVars + 000bd 8b c7 mov eax, edi + 000bf 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000c4 48 33 cd xor rcx, rbp - 000c7 e8 00 00 00 00 call __security_check_cookie - 000cc 48 8d a5 38 01 + 000c6 48 33 cd xor rcx, rbp + 000c9 e8 00 00 00 00 call __security_check_cookie + 000ce 48 8d a5 38 01 00 00 lea rsp, QWORD PTR [rbp+312] - 000d3 5f pop rdi - 000d4 5d pop rbp - 000d5 c3 ret 0 + 000d5 5f pop rdi + 000d6 5d pop rbp + 000d7 c3 ret 0 printf ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19974,39 +19581,33 @@ $LN3: 00016 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00022 48 8b fc mov rdi, rsp - 00025 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 00039 48 8d 0d 00 00 + 00022 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 645 : return __stdio_common_vfprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList); - 00045 e8 00 00 00 00 call __local_stdio_printf_options - 0004a 48 8b 8d f8 00 + 0002e e8 00 00 00 00 call __local_stdio_printf_options + 00033 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _ArgList$[rbp] - 00051 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 00056 4c 8b 8d f0 00 + 0003a 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 0003f 4c 8b 8d f0 00 00 00 mov r9, QWORD PTR _Locale$[rbp] - 0005d 4c 8b 85 e8 00 + 00046 4c 8b 85 e8 00 00 00 mov r8, QWORD PTR _Format$[rbp] - 00064 48 8b 95 e0 00 + 0004d 48 8b 95 e0 00 00 00 mov rdx, QWORD PTR _Stream$[rbp] - 0006b 48 8b 08 mov rcx, QWORD PTR [rax] - 0006e ff 15 00 00 00 + 00054 48 8b 08 mov rcx, QWORD PTR [rax] + 00057 ff 15 00 00 00 00 call QWORD PTR __imp___stdio_common_vfprintf ; 646 : } - 00074 48 8d a5 c8 00 + 0005d 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0007b 5f pop rdi - 0007c 5d pop rbp - 0007d c3 ret 0 + 00064 5f pop rdi + 00065 5d pop rbp + 00066 c3 ret 0 _vfprintf_l ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -20023,31 +19624,27 @@ $LN3: 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8b fc mov rdi, rsp - 00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8d 0d 00 00 + 0000f 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__A2143F22_corecrt_stdio_config@h - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : static unsigned __int64 _OptionsStorage; ; 92 : return &_OptionsStorage; - 0002a 48 8d 05 00 00 + 0001b 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage ; 93 : } - 00031 48 8d a5 c8 00 + 00022 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00038 5f pop rdi - 00039 5d pop rbp - 0003a c3 ret 0 + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 __local_stdio_printf_options ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_new.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vcruntime_new.h ; COMDAT ??2@YAPEAX_KPEAX@Z _TEXT SEGMENT _Size$ = 224 @@ -20064,33 +19661,27 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8906660C_vcruntime_new@h - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__02E23235_vcruntime_new@h + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 168 : (void)_Size; ; 169 : return _Where; - 0003b 48 8b 85 e8 00 + 00024 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Where$[rbp] ; 170 : } - 00042 48 8d a5 c8 00 + 0002b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00049 5f pop rdi - 0004a 5d pop rbp - 0004b c3 ret 0 + 00032 5f pop rdi + 00033 5d pop rbp + 00034 c3 ret 0 ??2@YAPEAX_KPEAX@Z ENDP ; operator new _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -20107,25 +19698,18 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -20140,25 +19724,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -20173,25 +19750,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -20204,21 +19774,14 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 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 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/Nop.cod b/CodeVirtualizer/x64/Debug/Nop.cod index 062a247..e432ce2 100644 --- a/CodeVirtualizer/x64/Debug/Nop.cod +++ b/CodeVirtualizer/x64/Debug/Nop.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@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 @@ -33,55 +33,56 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon 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 -__886F7F70_xloctime DB 01H -__3DD0E9E9_xed-util@h DB 01H -__209FD46F_xed-iform-map@h DB 01H -__4E05E119_xed-inst@h DB 01H -__0607FC5A_xed-flags@h DB 01H -__B4910D57_xed-operand-accessors@h DB 01H -__8663E876_xed-state@h DB 01H -__BB5B4FF8_xed-encode@h DB 01H -__21860875_xed-encoder-hl@h DB 01H -__F7815311_xed-decoded-inst-api@h DB 01H -__0A9363B8_Nop@cpp DB 01H -__7EA464AF_istream DB 01H -__1D745195_ostream DB 01H -__6FFBAAB7_streambuf DB 01H -__528871F3_iterator DB 01H -__3E6EDFAA_iosfwd DB 01H -__CF1C1A3F_utility DB 01H -__38038D2D_xstddef DB 01H -__EE19A480_xatomic@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 +__52D0D2F0_Nop@cpp 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 @@ -96,9 +97,9 @@ PUBLIC ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@st PUBLIC ?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ ; NcEmitNop PUBLIC ?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z ; NcEmitNopGroup PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `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@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +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 @@ -130,67 +131,67 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + 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+70 + 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+70 + 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+75 + 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+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + 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+165 + 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+223 + 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+379 + 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+379 + 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$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DD imagerel $LN6 - DD imagerel $LN6+251 + DD imagerel $LN6+253 DD imagerel $unwind$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ pdata ENDS ; COMDAT pdata @@ -202,7 +203,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z DD imagerel $LN10 - DD imagerel $LN10+219 + DD imagerel $LN10+197 DD imagerel $unwind$?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z pdata ENDS ; COMDAT pdata @@ -229,22 +230,27 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_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.27.29110\include\xlocnum', 00H ; `string' + 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@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@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.27.29110\include\xlocale', 00H ; `string' +??_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 voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD 031001H @@ -256,7 +262,7 @@ xdata SEGMENT $ip2state$?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z DB 06H DB 00H DB 00H - DB 0aaH + DB '~' DB 02H DB 'p' DB 00H @@ -275,13 +281,23 @@ $cppxdata$?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z DD 025052811H +$unwind$?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z DD 025051211H DD 010d2312H DD 070060029H DD 05005H DD imagerel __CxxFrameHandler4 DD imagerel $cppxdata$?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 02aH + DB 0e4H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ@4HA DD 031001H @@ -293,7 +309,7 @@ xdata SEGMENT $ip2state$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DB 06H DB 00H DB 00H - DB 0a0H + DB 0a4H DB 02H DB 09eH DB 00H @@ -312,7 +328,7 @@ $cppxdata$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DD 035052f19H +$unwind$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DD 035053119H DD 010a330fH DD 070030031H DD 05002H @@ -341,35 +357,40 @@ CONST SEGMENT CONST 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 025063501H +$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 025063501H +$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 035053401H +$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 035052a01H +$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 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -414,90 +435,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -507,7 +476,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp ; COMDAT ?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z _TEXT SEGMENT Block$ = 8 @@ -526,109 +495,103 @@ $LN10: 00006 48 81 ec 48 01 00 00 sub rsp, 328 ; 00000148H 0000d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00012 48 8b fc mov rdi, rsp - 00015 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 0001a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001f f3 ab rep stosd - 00021 8b 8c 24 68 01 - 00 00 mov ecx, DWORD PTR [rsp+360] - 00028 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0A9363B8_Nop@cpp - 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00012 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__52D0D2F0_Nop@cpp + 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 13 : if (Count < 1) - 00034 83 bd 40 01 00 + 0001e 83 bd 40 01 00 00 01 cmp DWORD PTR Count$[rbp], 1 - 0003b 73 07 jae SHORT $LN4@NcEmitNopG + 00025 73 07 jae SHORT $LN4@NcEmitNopG ; 14 : return NULL; - 0003d 33 c0 xor eax, eax - 0003f e9 8d 00 00 00 jmp $LN1@NcEmitNopG + 00027 33 c0 xor eax, eax + 00029 e9 8d 00 00 00 jmp $LN1@NcEmitNopG $LN4@NcEmitNopG: ; 15 : ; 16 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; - 00044 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 00049 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 0004e 48 89 85 08 01 + 0002e b9 30 00 00 00 mov ecx, 48 ; 00000030H + 00033 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00038 48 89 85 08 01 00 00 mov QWORD PTR $T2[rbp], rax - 00055 48 83 bd 08 01 + 0003f 48 83 bd 08 01 00 00 00 cmp QWORD PTR $T2[rbp], 0 - 0005d 74 15 je SHORT $LN7@NcEmitNopG - 0005f 48 8b 8d 08 01 + 00047 74 15 je SHORT $LN7@NcEmitNopG + 00049 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR $T2[rbp] - 00066 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 0006b 48 89 85 18 01 + 00050 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 00055 48 89 85 18 01 00 00 mov QWORD PTR tv76[rbp], rax - 00072 eb 0b jmp SHORT $LN8@NcEmitNopG + 0005c eb 0b jmp SHORT $LN8@NcEmitNopG $LN7@NcEmitNopG: - 00074 48 c7 85 18 01 + 0005e 48 c7 85 18 01 00 00 00 00 00 00 mov QWORD PTR tv76[rbp], 0 $LN8@NcEmitNopG: - 0007f 48 8b 85 18 01 + 00069 48 8b 85 18 01 00 00 mov rax, QWORD PTR tv76[rbp] - 00086 48 89 85 e8 00 + 00070 48 89 85 e8 00 00 00 mov QWORD PTR $T1[rbp], rax - 0008d 48 8b 85 e8 00 + 00077 48 8b 85 e8 00 00 00 mov rax, QWORD PTR $T1[rbp] - 00094 48 89 45 08 mov QWORD PTR Block$[rbp], rax + 0007e 48 89 45 08 mov QWORD PTR Block$[rbp], rax ; 17 : if (!Block) - 00098 48 83 7d 08 00 cmp QWORD PTR Block$[rbp], 0 - 0009d 75 04 jne SHORT $LN2@NcEmitNopG + 00082 48 83 7d 08 00 cmp QWORD PTR Block$[rbp], 0 + 00087 75 04 jne SHORT $LN2@NcEmitNopG ; 18 : return NULL; - 0009f 33 c0 xor eax, eax - 000a1 eb 2e jmp SHORT $LN1@NcEmitNopG + 00089 33 c0 xor eax, eax + 0008b eb 2e jmp SHORT $LN1@NcEmitNopG $LN2@NcEmitNopG: ; 19 : ; 20 : while (Count) - 000a3 83 bd 40 01 00 + 0008d 83 bd 40 01 00 00 00 cmp DWORD PTR Count$[rbp], 0 - 000aa 74 21 je SHORT $LN3@NcEmitNopG + 00094 74 21 je SHORT $LN3@NcEmitNopG ; 21 : { ; 22 : NcAppendToBlock(Block, NcEmitNop()); - 000ac e8 00 00 00 00 call ?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ ; NcEmitNop - 000b1 48 8b d0 mov rdx, rax - 000b4 48 8b 4d 08 mov rcx, QWORD PTR Block$[rbp] - 000b8 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00096 e8 00 00 00 00 call ?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ ; NcEmitNop + 0009b 48 8b d0 mov rdx, rax + 0009e 48 8b 4d 08 mov rcx, QWORD PTR Block$[rbp] + 000a2 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 23 : Count--; - 000bd 8b 85 40 01 00 + 000a7 8b 85 40 01 00 00 mov eax, DWORD PTR Count$[rbp] - 000c3 ff c8 dec eax - 000c5 89 85 40 01 00 + 000ad ff c8 dec eax + 000af 89 85 40 01 00 00 mov DWORD PTR Count$[rbp], eax ; 24 : } - 000cb eb d6 jmp SHORT $LN2@NcEmitNopG + 000b5 eb d6 jmp SHORT $LN2@NcEmitNopG $LN3@NcEmitNopG: ; 25 : ; 26 : return Block; - 000cd 48 8b 45 08 mov rax, QWORD PTR Block$[rbp] + 000b7 48 8b 45 08 mov rax, QWORD PTR Block$[rbp] $LN1@NcEmitNopG: ; 27 : } - 000d1 48 8d a5 28 01 + 000bb 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000d8 5f pop rdi - 000d9 5d pop rbp - 000da c3 ret 0 + 000c2 5f pop rdi + 000c3 5d pop rbp + 000c4 c3 ret 0 ?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z ENDP ; NcEmitNopGroup _TEXT ENDS ; COMDAT text$x @@ -681,7 +644,7 @@ Count$ = 320 ?dtor$0@?0??NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `NcEmitNopGroup'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp ; COMDAT ?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ _TEXT SEGMENT RawData$ = 4 @@ -700,89 +663,89 @@ $LN6: 00003 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 0000a 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0000f 48 8b fc mov rdi, rsp - 00012 b9 62 00 00 00 mov ecx, 98 ; 00000062H - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8b 05 00 00 + 0000f 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00014 b9 26 00 00 00 mov ecx, 38 ; 00000026H + 00019 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0001e f3 ab rep stosd + 00020 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00025 48 33 c5 xor rax, rbp - 00028 48 89 85 40 01 + 00027 48 33 c5 xor rax, rbp + 0002a 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0A9363B8_Nop@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00031 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__52D0D2F0_Nop@cpp + 00038 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : UCHAR RawData[] = { 0x90 }; - 0003b c6 45 04 90 mov BYTE PTR RawData$[rbp], 144 ; 00000090H + 0003d c6 45 04 90 mov BYTE PTR RawData$[rbp], 144 ; 00000090H ; 6 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, 1); - 0003f b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00044 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00049 48 89 85 28 01 + 00041 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00046 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0004b 48 89 85 28 01 00 00 mov QWORD PTR $T5[rbp], rax - 00050 48 83 bd 28 01 + 00052 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00058 74 2c je SHORT $LN3@NcEmitNop - 0005a c7 44 24 20 00 + 0005a 74 2c je SHORT $LN3@NcEmitNop + 0005c c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00062 41 b9 01 00 00 + 00064 41 b9 01 00 00 00 mov r9d, 1 - 00068 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] - 0006c ba 04 00 00 00 mov edx, 4 - 00071 48 8b 8d 28 01 + 0006a 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] + 0006e ba 04 00 00 00 mov edx, 4 + 00073 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 00078 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 0007d 48 89 85 38 01 + 0007a e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 0007f 48 89 85 38 01 00 00 mov QWORD PTR tv79[rbp], rax - 00084 eb 0b jmp SHORT $LN4@NcEmitNop + 00086 eb 0b jmp SHORT $LN4@NcEmitNop $LN3@NcEmitNop: - 00086 48 c7 85 38 01 + 00088 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@NcEmitNop: - 00091 48 8b 85 38 01 + 00093 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 00098 48 89 85 08 01 + 0009a 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 0009f 48 8b 85 08 01 + 000a1 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000a6 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000a8 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 7 : XedDecode(&Link->XedInstruction, Link->RawData, 1); - 000aa 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] - 000ae 48 83 c0 30 add rax, 48 ; 00000030H - 000b2 41 b8 01 00 00 + 000ac 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 000b0 48 83 c0 30 add rax, 48 ; 00000030H + 000b4 41 b8 01 00 00 00 mov r8d, 1 - 000b8 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000bc 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 000c0 48 8b c8 mov rcx, rax - 000c3 e8 00 00 00 00 call xed_decode + 000ba 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000be 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 000c2 48 8b c8 mov rcx, rax + 000c5 e8 00 00 00 00 call xed_decode ; 8 : return Link; - 000c8 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 000ca 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] ; 9 : } - 000cc 48 8b f8 mov rdi, rax - 000cf 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 000d3 48 8d 15 00 00 + 000ce 48 8b f8 mov rdi, rax + 000d1 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 000d5 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ$rtcFrameData - 000da e8 00 00 00 00 call _RTC_CheckStackVars - 000df 48 8b c7 mov rax, rdi - 000e2 48 8b 8d 40 01 + 000dc e8 00 00 00 00 call _RTC_CheckStackVars + 000e1 48 8b c7 mov rax, rdi + 000e4 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000e9 48 33 cd xor rcx, rbp - 000ec e8 00 00 00 00 call __security_check_cookie - 000f1 48 8d a5 58 01 + 000eb 48 33 cd xor rcx, rbp + 000ee e8 00 00 00 00 call __security_check_cookie + 000f3 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 000f8 5f pop rdi - 000f9 5d pop rbp - 000fa c3 ret 0 + 000fa 5f pop rdi + 000fb 5d pop rbp + 000fc c3 ret 0 ?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ ENDP ; NcEmitNop _TEXT ENDS ; COMDAT text$x @@ -837,7 +800,7 @@ __$ArrayPad$ = 320 ?dtor$0@?0??NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ@4HA ENDP ; `NcEmitNop'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -848,7 +811,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -860,147 +823,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 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] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -1011,7 +968,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -1023,147 +980,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 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] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; 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 @@ -1174,7 +1125,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1185,104 +1136,98 @@ $LN7: 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 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 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] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 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 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 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 - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 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: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 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] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 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] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; 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 @@ -1299,79 +1244,73 @@ $LN4: 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 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 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 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 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 - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_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); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 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] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 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.27.29110\include\xlocale +; 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 @@ -1390,7 +1329,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 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 @@ -1401,251 +1340,251 @@ $LN12: 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 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 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] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 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] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 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 -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 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 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 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] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 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] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 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] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 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 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 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 - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 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 -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 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] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 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 - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 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] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 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] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 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] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 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 - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 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] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 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] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1668,40 +1607,34 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 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] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1718,25 +1651,18 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0A9363B8_Nop@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__52D0D2F0_Nop@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1751,25 +1677,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0A9363B8_Nop@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__52D0D2F0_Nop@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1784,25 +1703,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0A9363B8_Nop@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__52D0D2F0_Nop@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1815,21 +1727,14 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0A9363B8_Nop@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__52D0D2F0_Nop@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 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 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/Obfuscator.cod b/CodeVirtualizer/x64/Debug/Obfuscator.cod index f8a28c7..3ae9beb 100644 --- a/CodeVirtualizer/x64/Debug/Obfuscator.cod +++ b/CodeVirtualizer/x64/Debug/Obfuscator.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc diff --git a/CodeVirtualizer/x64/Debug/OpaqueBranching.cod b/CodeVirtualizer/x64/Debug/OpaqueBranching.cod index 654734a..5e53397 100644 --- a/CodeVirtualizer/x64/Debug/OpaqueBranching.cod +++ b/CodeVirtualizer/x64/Debug/OpaqueBranching.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@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 @@ -33,55 +33,56 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon 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 -__886F7F70_xloctime DB 01H -__3DD0E9E9_xed-util@h DB 01H -__209FD46F_xed-iform-map@h DB 01H -__4E05E119_xed-inst@h DB 01H -__0607FC5A_xed-flags@h DB 01H -__B4910D57_xed-operand-accessors@h DB 01H -__8663E876_xed-state@h DB 01H -__BB5B4FF8_xed-encode@h DB 01H -__21860875_xed-encoder-hl@h DB 01H -__F7815311_xed-decoded-inst-api@h DB 01H -__BCD1AF07_OpaqueBranching@cpp DB 01H -__7EA464AF_istream DB 01H -__1D745195_ostream DB 01H -__6FFBAAB7_streambuf DB 01H -__528871F3_iterator DB 01H -__3E6EDFAA_iosfwd DB 01H -__CF1C1A3F_utility DB 01H -__38038D2D_xstddef DB 01H -__EE19A480_xatomic@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 +__A8BC9087_OpaqueBranching@cpp 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 @@ -101,9 +102,9 @@ PUBLIC ?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLO PUBLIC ?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z ; ObfCombineOpaqueBranches PUBLIC ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfInsertOpaqueBranchBlock PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `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@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +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 @@ -144,91 +145,91 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + 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+70 + 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+70 + 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+75 + 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+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + 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+165 + 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+223 + 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+379 + 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+379 + 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$xed_relbr DD imagerel xed_relbr - DD imagerel xed_relbr+182 + DD imagerel xed_relbr+184 DD imagerel $unwind$xed_relbr pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_inst1 DD imagerel xed_inst1 - DD imagerel xed_inst1+207 + DD imagerel xed_inst1+184 DD imagerel $unwind$xed_inst1 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+105 + DD imagerel $LN4+82 DD imagerel $unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ DD imagerel $LN21 - DD imagerel $LN21+284 + DD imagerel $LN21+268 DD imagerel $unwind$?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD imagerel $LN11 - DD imagerel $LN11+615 + DD imagerel $LN11+617 DD imagerel $unwind$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z pdata ENDS ; COMDAT pdata @@ -240,7 +241,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD imagerel $LN11 - DD imagerel $LN11+589 + DD imagerel $LN11+591 DD imagerel $unwind$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z pdata ENDS ; COMDAT pdata @@ -252,13 +253,13 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z DD imagerel $LN5 - DD imagerel $LN5+167 + DD imagerel $LN5+144 DD imagerel $unwind$?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z DD imagerel $LN13 - DD imagerel $LN13+500 + DD imagerel $LN13+477 DD imagerel $unwind$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z pdata ENDS ; COMDAT pdata @@ -276,7 +277,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN13 - DD imagerel $LN13+400 + DD imagerel $LN13+377 DD imagerel $unwind$?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT rtc$TMZ @@ -297,29 +298,39 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_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.27.29110\include\xlocnum', 00H ; `string' + 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@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@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.27.29110\include\xlocale', 00H ; `string' +??_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 xdata xdata SEGMENT -$unwind$?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD 025053401H +$unwind$?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD 025051d01H DD 0118231dH DD 070110031H DD 05010H 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 xdata xdata SEGMENT $unwind$?dtor$1@?0??ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z@4HA DD 031001H @@ -337,7 +348,7 @@ xdata SEGMENT $ip2state$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z DB 0aH DB 00H DB 00H - DB 0d1H, 03H + DB 'u', 03H DB 02H DB 08aH DB 00H @@ -362,7 +373,7 @@ $cppxdata$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z DD 025053911H +$unwind$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z DD 025052211H DD 011d2322H DD 070160039H DD 05015H @@ -371,11 +382,21 @@ $unwind$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z DD 025053911 xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z DD 025053901H +$unwind$?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z DD 025052201H DD 011d2322H DD 07016001fH DD 05015H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 039H + DW 0235H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA DD 031001H @@ -387,7 +408,7 @@ xdata SEGMENT $ip2state$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DB 06H DB 00H DB 00H - DB 0a5H, 04H + DB 0adH, 04H DB 02H DB 0a6H DB 00H @@ -406,7 +427,7 @@ $cppxdata$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD 035063e19H +$unwind$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD 035064019H DD 01123317H DD 0700b00e0H DD 05009600aH @@ -514,6 +535,16 @@ CONST SEGMENT DD 00H DQ FLAT:?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 039H + DW 024fH +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA DD 031001H @@ -525,7 +556,7 @@ xdata SEGMENT $ip2state$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DB 06H DB 00H DB 00H - DB 0dH, 05H + DB 015H, 05H DB 02H DB 0a6H DB 00H @@ -544,7 +575,7 @@ $cppxdata$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD 035063e19H +$unwind$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD 035064019H DD 01123317H DD 0700b00e4H DD 05009600aH @@ -654,28 +685,33 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ DD 025051e01H +$unwind$?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ DD 025050f01H DD 010a230fH DD 07003001fH DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD 025052e01H +$unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD 025051701H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst1 DD 025063a01H +$unwind$xed_inst1 DD 025062301H DD 011e2323H DD 07017001cH DD 050156016H xdata ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 040H + DB 09eH +voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_relbr DD 025064519H +$unwind$xed_relbr DD 025064719H DD 0118231dH DD 070110026H DD 0500f6010H @@ -697,35 +733,40 @@ xed_relbr$rtcFrameData DD 01H CONST 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 025063501H +$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 025063501H +$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 035053401H +$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 035052a01H +$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 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -770,90 +811,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -863,7 +852,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT T$1 = 8 @@ -888,179 +877,173 @@ $LN13: 00011 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 62 00 00 00 mov ecx, 98 ; 00000062H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 a8 - 01 00 00 mov rcx, QWORD PTR [rsp+424] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 118 : OpaqueBranchBlock->Start->Prev = Start->Prev; - 00040 48 8b 85 90 01 + 00029 48 8b 85 90 01 00 00 mov rax, QWORD PTR OpaqueBranchBlock$[rbp] - 00047 48 8b 00 mov rax, QWORD PTR [rax] - 0004a 48 8b 8d 80 01 + 00030 48 8b 00 mov rax, QWORD PTR [rax] + 00033 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Start$[rbp] - 00051 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 00055 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0003a 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 0003e 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 119 : OpaqueBranchBlock->End->Next = End->Next; - 00059 48 8b 85 90 01 + 00042 48 8b 85 90 01 00 00 mov rax, QWORD PTR OpaqueBranchBlock$[rbp] - 00060 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00064 48 8b 8d 88 01 + 00049 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0004d 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR End$[rbp] - 0006b 48 8b 09 mov rcx, QWORD PTR [rcx] - 0006e 48 89 08 mov QWORD PTR [rax], rcx + 00054 48 8b 09 mov rcx, QWORD PTR [rcx] + 00057 48 89 08 mov QWORD PTR [rax], rcx ; 120 : ; 121 : if (Start->Prev) - 00071 48 8b 85 80 01 + 0005a 48 8b 85 80 01 00 00 mov rax, QWORD PTR Start$[rbp] - 00078 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 0007d 74 18 je SHORT $LN8@ObfInsertO + 00061 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00066 74 18 je SHORT $LN8@ObfInsertO ; 122 : Start->Prev->Next = OpaqueBranchBlock->Start; - 0007f 48 8b 85 80 01 + 00068 48 8b 85 80 01 00 00 mov rax, QWORD PTR Start$[rbp] - 00086 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0008a 48 8b 8d 90 01 + 0006f 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00073 48 8b 8d 90 01 00 00 mov rcx, QWORD PTR OpaqueBranchBlock$[rbp] - 00091 48 8b 09 mov rcx, QWORD PTR [rcx] - 00094 48 89 08 mov QWORD PTR [rax], rcx + 0007a 48 8b 09 mov rcx, QWORD PTR [rcx] + 0007d 48 89 08 mov QWORD PTR [rax], rcx $LN8@ObfInsertO: ; 123 : if (End->Next) - 00097 48 8b 85 88 01 + 00080 48 8b 85 88 01 00 00 mov rax, QWORD PTR End$[rbp] - 0009e 48 83 38 00 cmp QWORD PTR [rax], 0 - 000a2 74 19 je SHORT $LN9@ObfInsertO + 00087 48 83 38 00 cmp QWORD PTR [rax], 0 + 0008b 74 19 je SHORT $LN9@ObfInsertO ; 124 : End->Next->Prev = OpaqueBranchBlock->End; - 000a4 48 8b 85 88 01 + 0008d 48 8b 85 88 01 00 00 mov rax, QWORD PTR End$[rbp] - 000ab 48 8b 00 mov rax, QWORD PTR [rax] - 000ae 48 8b 8d 90 01 + 00094 48 8b 00 mov rax, QWORD PTR [rax] + 00097 48 8b 8d 90 01 00 00 mov rcx, QWORD PTR OpaqueBranchBlock$[rbp] - 000b5 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 000b9 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0009e 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 000a2 48 89 48 08 mov QWORD PTR [rax+8], rcx $LN9@ObfInsertO: ; 125 : ; 126 : //Update group for the current isntructions ; 127 : for (PNATIVE_CODE_LINK T = OpaqueBranchBlock->Start; T && T != OpaqueBranchBlock->End->Next; T = T->Next) - 000bd 48 8b 85 90 01 + 000a6 48 8b 85 90 01 00 00 mov rax, QWORD PTR OpaqueBranchBlock$[rbp] - 000c4 48 8b 00 mov rax, QWORD PTR [rax] - 000c7 48 89 45 08 mov QWORD PTR T$1[rbp], rax - 000cb eb 0b jmp SHORT $LN4@ObfInsertO + 000ad 48 8b 00 mov rax, QWORD PTR [rax] + 000b0 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 000b4 eb 0b jmp SHORT $LN4@ObfInsertO $LN2@ObfInsertO: - 000cd 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 000d1 48 8b 00 mov rax, QWORD PTR [rax] - 000d4 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 000b6 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 000ba 48 8b 00 mov rax, QWORD PTR [rax] + 000bd 48 89 45 08 mov QWORD PTR T$1[rbp], rax $LN4@ObfInsertO: - 000d8 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 - 000dd 74 29 je SHORT $LN3@ObfInsertO - 000df 48 8b 85 90 01 + 000c1 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 000c6 74 29 je SHORT $LN3@ObfInsertO + 000c8 48 8b 85 90 01 00 00 mov rax, QWORD PTR OpaqueBranchBlock$[rbp] - 000e6 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 000ea 48 8b 00 mov rax, QWORD PTR [rax] - 000ed 48 39 45 08 cmp QWORD PTR T$1[rbp], rax - 000f1 74 15 je SHORT $LN3@ObfInsertO + 000cf 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 000d3 48 8b 00 mov rax, QWORD PTR [rax] + 000d6 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 000da 74 15 je SHORT $LN3@ObfInsertO ; 128 : T->Block = Start->Block; - 000f3 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 000f7 48 8b 8d 80 01 + 000dc 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 000e0 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Start$[rbp] - 000fe 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] - 00102 48 89 48 10 mov QWORD PTR [rax+16], rcx - 00106 eb c5 jmp SHORT $LN2@ObfInsertO + 000e7 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 000eb 48 89 48 10 mov QWORD PTR [rax+16], rcx + 000ef eb c5 jmp SHORT $LN2@ObfInsertO $LN3@ObfInsertO: ; 129 : ; 130 : PNATIVE_CODE_LINK EndBlock = End->Next; - 00108 48 8b 85 88 01 + 000f1 48 8b 85 88 01 00 00 mov rax, QWORD PTR End$[rbp] - 0010f 48 8b 00 mov rax, QWORD PTR [rax] - 00112 48 89 45 28 mov QWORD PTR EndBlock$[rbp], rax + 000f8 48 8b 00 mov rax, QWORD PTR [rax] + 000fb 48 89 45 28 mov QWORD PTR EndBlock$[rbp], rax ; 131 : for (PNATIVE_CODE_LINK T = Start; T && T != EndBlock;) - 00116 48 8b 85 80 01 + 000ff 48 8b 85 80 01 00 00 mov rax, QWORD PTR Start$[rbp] - 0011d 48 89 45 48 mov QWORD PTR T$2[rbp], rax + 00106 48 89 45 48 mov QWORD PTR T$2[rbp], rax $LN5@ObfInsertO: - 00121 48 83 7d 48 00 cmp QWORD PTR T$2[rbp], 0 - 00126 74 59 je SHORT $LN6@ObfInsertO - 00128 48 8b 45 28 mov rax, QWORD PTR EndBlock$[rbp] - 0012c 48 39 45 48 cmp QWORD PTR T$2[rbp], rax - 00130 74 4f je SHORT $LN6@ObfInsertO + 0010a 48 83 7d 48 00 cmp QWORD PTR T$2[rbp], 0 + 0010f 74 59 je SHORT $LN6@ObfInsertO + 00111 48 8b 45 28 mov rax, QWORD PTR EndBlock$[rbp] + 00115 48 39 45 48 cmp QWORD PTR T$2[rbp], rax + 00119 74 4f je SHORT $LN6@ObfInsertO ; 132 : { ; 133 : PNATIVE_CODE_LINK RealNext = T->Next; - 00132 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] - 00136 48 8b 00 mov rax, QWORD PTR [rax] - 00139 48 89 45 68 mov QWORD PTR RealNext$3[rbp], rax + 0011b 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] + 0011f 48 8b 00 mov rax, QWORD PTR [rax] + 00122 48 89 45 68 mov QWORD PTR RealNext$3[rbp], rax ; 134 : delete T; - 0013d 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] - 00141 48 89 85 48 01 + 00126 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] + 0012a 48 89 85 48 01 00 00 mov QWORD PTR $T4[rbp], rax - 00148 48 83 bd 48 01 + 00131 48 83 bd 48 01 00 00 00 cmp QWORD PTR $T4[rbp], 0 - 00150 74 1a je SHORT $LN11@ObfInsertO - 00152 ba 01 00 00 00 mov edx, 1 - 00157 48 8b 8d 48 01 + 00139 74 1a je SHORT $LN11@ObfInsertO + 0013b ba 01 00 00 00 mov edx, 1 + 00140 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR $T4[rbp] - 0015e e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 00163 48 89 85 58 01 + 00147 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 0014c 48 89 85 58 01 00 00 mov QWORD PTR tv128[rbp], rax - 0016a eb 0b jmp SHORT $LN12@ObfInsertO + 00153 eb 0b jmp SHORT $LN12@ObfInsertO $LN11@ObfInsertO: - 0016c 48 c7 85 58 01 + 00155 48 c7 85 58 01 00 00 00 00 00 00 mov QWORD PTR tv128[rbp], 0 $LN12@ObfInsertO: ; 135 : T = RealNext; - 00177 48 8b 45 68 mov rax, QWORD PTR RealNext$3[rbp] - 0017b 48 89 45 48 mov QWORD PTR T$2[rbp], rax + 00160 48 8b 45 68 mov rax, QWORD PTR RealNext$3[rbp] + 00164 48 89 45 48 mov QWORD PTR T$2[rbp], rax ; 136 : } - 0017f eb a0 jmp SHORT $LN5@ObfInsertO + 00168 eb a0 jmp SHORT $LN5@ObfInsertO $LN6@ObfInsertO: ; 137 : return TRUE; - 00181 b8 01 00 00 00 mov eax, 1 + 0016a b8 01 00 00 00 mov eax, 1 ; 138 : } - 00186 48 8d a5 68 01 + 0016f 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 0018d 5f pop rdi - 0018e 5d pop rbp - 0018f c3 ret 0 + 00176 5f pop rdi + 00177 5d pop rbp + 00178 c3 ret 0 ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; ObfInsertOpaqueBranchBlock _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z _TEXT SEGMENT Jcc$ = 8 @@ -1091,193 +1074,187 @@ $LN13: 00016 48 81 ec c8 01 00 00 sub rsp, 456 ; 000001c8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8b fc mov rdi, rsp - 00025 b9 72 00 00 00 mov ecx, 114 ; 00000072H - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 e8 - 01 00 00 mov rcx, QWORD PTR [rsp+488] - 00039 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 95 : PNATIVE_CODE_LINK Jcc = ObfGenRandomJcc(JccLabel); - 00045 ba 20 00 00 00 mov edx, 32 ; 00000020H - 0004a 8b 8d d0 01 00 + 0002e ba 20 00 00 00 mov edx, 32 ; 00000020H + 00033 8b 8d d0 01 00 00 mov ecx, DWORD PTR JccLabel$[rbp] - 00050 e8 00 00 00 00 call ?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ; ObfGenRandomJcc - 00055 48 89 45 08 mov QWORD PTR Jcc$[rbp], rax + 00039 e8 00 00 00 00 call ?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ; ObfGenRandomJcc + 0003e 48 89 45 08 mov QWORD PTR Jcc$[rbp], rax ; 96 : if (!Jcc) - 00059 48 83 7d 08 00 cmp QWORD PTR Jcc$[rbp], 0 - 0005e 75 07 jne SHORT $LN2@ObfCombine + 00042 48 83 7d 08 00 cmp QWORD PTR Jcc$[rbp], 0 + 00047 75 07 jne SHORT $LN2@ObfCombine ; 97 : return FALSE; - 00060 33 c0 xor eax, eax - 00062 e9 83 01 00 00 jmp $LN1@ObfCombine + 00049 33 c0 xor eax, eax + 0004b e9 83 01 00 00 jmp $LN1@ObfCombine $LN2@ObfCombine: ; 98 : PNATIVE_CODE_LINK Jmp = ObfGenJmpToLabel(JmpLabel); - 00067 ba 20 00 00 00 mov edx, 32 ; 00000020H - 0006c 8b 8d d8 01 00 + 00050 ba 20 00 00 00 mov edx, 32 ; 00000020H + 00055 8b 8d d8 01 00 00 mov ecx, DWORD PTR JmpLabel$[rbp] - 00072 e8 00 00 00 00 call ?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ; ObfGenJmpToLabel - 00077 48 89 45 28 mov QWORD PTR Jmp$[rbp], rax + 0005b e8 00 00 00 00 call ?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ; ObfGenJmpToLabel + 00060 48 89 45 28 mov QWORD PTR Jmp$[rbp], rax ; 99 : if (!Jmp) - 0007b 48 83 7d 28 00 cmp QWORD PTR Jmp$[rbp], 0 - 00080 75 41 jne SHORT $LN3@ObfCombine + 00064 48 83 7d 28 00 cmp QWORD PTR Jmp$[rbp], 0 + 00069 75 41 jne SHORT $LN3@ObfCombine ; 100 : { ; 101 : delete Jcc; - 00082 48 8b 45 08 mov rax, QWORD PTR Jcc$[rbp] - 00086 48 89 85 08 01 + 0006b 48 8b 45 08 mov rax, QWORD PTR Jcc$[rbp] + 0006f 48 89 85 08 01 00 00 mov QWORD PTR $T1[rbp], rax - 0008d 48 83 bd 08 01 + 00076 48 83 bd 08 01 00 00 00 cmp QWORD PTR $T1[rbp], 0 - 00095 74 1a je SHORT $LN5@ObfCombine - 00097 ba 01 00 00 00 mov edx, 1 - 0009c 48 8b 8d 08 01 + 0007e 74 1a je SHORT $LN5@ObfCombine + 00080 ba 01 00 00 00 mov edx, 1 + 00085 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR $T1[rbp] - 000a3 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 000a8 48 89 85 98 01 + 0008c e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 00091 48 89 85 98 01 00 00 mov QWORD PTR tv76[rbp], rax - 000af eb 0b jmp SHORT $LN6@ObfCombine + 00098 eb 0b jmp SHORT $LN6@ObfCombine $LN5@ObfCombine: - 000b1 48 c7 85 98 01 + 0009a 48 c7 85 98 01 00 00 00 00 00 00 mov QWORD PTR tv76[rbp], 0 $LN6@ObfCombine: ; 102 : return FALSE; - 000bc 33 c0 xor eax, eax - 000be e9 27 01 00 00 jmp $LN1@ObfCombine + 000a5 33 c0 xor eax, eax + 000a7 e9 27 01 00 00 jmp $LN1@ObfCombine $LN3@ObfCombine: ; 103 : } ; 104 : ; 105 : NcPrependToBlock(NotTaken, Jcc); - 000c3 48 8b 55 08 mov rdx, QWORD PTR Jcc$[rbp] - 000c7 48 8b 8d c0 01 + 000ac 48 8b 55 08 mov rdx, QWORD PTR Jcc$[rbp] + 000b0 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR NotTaken$[rbp] - 000ce e8 00 00 00 00 call ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcPrependToBlock + 000b7 e8 00 00 00 00 call ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcPrependToBlock ; 106 : NcAppendToBlock(NotTaken, Jmp); - 000d3 48 8b 55 28 mov rdx, QWORD PTR Jmp$[rbp] - 000d7 48 8b 8d c0 01 + 000bc 48 8b 55 28 mov rdx, QWORD PTR Jmp$[rbp] + 000c0 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR NotTaken$[rbp] - 000de e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 000c7 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 107 : ; 108 : NcPrependToBlock(Taken, new NATIVE_CODE_LINK(JccLabel, Taken)); - 000e3 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 000e8 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 000ed 48 89 85 48 01 + 000cc b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 000d1 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 000d6 48 89 85 48 01 00 00 mov QWORD PTR $T3[rbp], rax - 000f4 48 83 bd 48 01 + 000dd 48 83 bd 48 01 00 00 00 cmp QWORD PTR $T3[rbp], 0 - 000fc 74 22 je SHORT $LN7@ObfCombine - 000fe 4c 8b 85 c8 01 + 000e5 74 22 je SHORT $LN7@ObfCombine + 000e7 4c 8b 85 c8 01 00 00 mov r8, QWORD PTR Taken$[rbp] - 00105 8b 95 d0 01 00 + 000ee 8b 95 d0 01 00 00 mov edx, DWORD PTR JccLabel$[rbp] - 0010b 48 8b 8d 48 01 + 000f4 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR $T3[rbp] - 00112 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00117 48 89 85 98 01 + 000fb e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00100 48 89 85 98 01 00 00 mov QWORD PTR tv94[rbp], rax - 0011e eb 0b jmp SHORT $LN8@ObfCombine + 00107 eb 0b jmp SHORT $LN8@ObfCombine $LN7@ObfCombine: - 00120 48 c7 85 98 01 + 00109 48 c7 85 98 01 00 00 00 00 00 00 mov QWORD PTR tv94[rbp], 0 $LN8@ObfCombine: - 0012b 48 8b 85 98 01 + 00114 48 8b 85 98 01 00 00 mov rax, QWORD PTR tv94[rbp] - 00132 48 89 85 28 01 + 0011b 48 89 85 28 01 00 00 mov QWORD PTR $T2[rbp], rax - 00139 48 8b 95 28 01 + 00122 48 8b 95 28 01 00 00 mov rdx, QWORD PTR $T2[rbp] - 00140 48 8b 8d c8 01 + 00129 48 8b 8d c8 01 00 00 mov rcx, QWORD PTR Taken$[rbp] - 00147 e8 00 00 00 00 call ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcPrependToBlock + 00130 e8 00 00 00 00 call ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcPrependToBlock ; 109 : NcAppendToBlock(Taken, new NATIVE_CODE_LINK(JmpLabel, Taken)); - 0014c b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00151 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00156 48 89 85 88 01 + 00135 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0013a e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0013f 48 89 85 88 01 00 00 mov QWORD PTR $T5[rbp], rax - 0015d 48 83 bd 88 01 + 00146 48 83 bd 88 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00165 74 22 je SHORT $LN9@ObfCombine - 00167 4c 8b 85 c8 01 + 0014e 74 22 je SHORT $LN9@ObfCombine + 00150 4c 8b 85 c8 01 00 00 mov r8, QWORD PTR Taken$[rbp] - 0016e 8b 95 d8 01 00 + 00157 8b 95 d8 01 00 00 mov edx, DWORD PTR JmpLabel$[rbp] - 00174 48 8b 8d 88 01 + 0015d 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 0017b e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00180 48 89 85 98 01 + 00164 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00169 48 89 85 98 01 00 00 mov QWORD PTR tv141[rbp], rax - 00187 eb 0b jmp SHORT $LN10@ObfCombine + 00170 eb 0b jmp SHORT $LN10@ObfCombine $LN9@ObfCombine: - 00189 48 c7 85 98 01 + 00172 48 c7 85 98 01 00 00 00 00 00 00 mov QWORD PTR tv141[rbp], 0 $LN10@ObfCombine: - 00194 48 8b 85 98 01 + 0017d 48 8b 85 98 01 00 00 mov rax, QWORD PTR tv141[rbp] - 0019b 48 89 85 68 01 + 00184 48 89 85 68 01 00 00 mov QWORD PTR $T4[rbp], rax - 001a2 48 8b 95 68 01 + 0018b 48 8b 95 68 01 00 00 mov rdx, QWORD PTR $T4[rbp] - 001a9 48 8b 8d c8 01 + 00192 48 8b 8d c8 01 00 00 mov rcx, QWORD PTR Taken$[rbp] - 001b0 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00199 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 110 : ; 111 : NcInsertBlockAfter(NotTaken->End, Taken, FALSE); - 001b5 45 33 c0 xor r8d, r8d - 001b8 48 8b 95 c8 01 + 0019e 45 33 c0 xor r8d, r8d + 001a1 48 8b 95 c8 01 00 00 mov rdx, QWORD PTR Taken$[rbp] - 001bf 48 8b 85 c0 01 + 001a8 48 8b 85 c0 01 00 00 mov rax, QWORD PTR NotTaken$[rbp] - 001c6 48 8b 48 08 mov rcx, QWORD PTR [rax+8] - 001ca e8 00 00 00 00 call ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ; NcInsertBlockAfter + 001af 48 8b 48 08 mov rcx, QWORD PTR [rax+8] + 001b3 e8 00 00 00 00 call ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z ; NcInsertBlockAfter ; 112 : NotTaken->End = Taken->End; - 001cf 48 8b 85 c0 01 + 001b8 48 8b 85 c0 01 00 00 mov rax, QWORD PTR NotTaken$[rbp] - 001d6 48 8b 8d c8 01 + 001bf 48 8b 8d c8 01 00 00 mov rcx, QWORD PTR Taken$[rbp] - 001dd 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 001e1 48 89 48 08 mov QWORD PTR [rax+8], rcx + 001c6 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 001ca 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 113 : return TRUE; - 001e5 b8 01 00 00 00 mov eax, 1 + 001ce b8 01 00 00 00 mov eax, 1 $LN1@ObfCombine: ; 114 : } - 001ea 48 8d a5 a8 01 + 001d3 48 8d a5 a8 01 00 00 lea rsp, QWORD PTR [rbp+424] - 001f1 5f pop rdi - 001f2 5d pop rbp - 001f3 c3 ret 0 + 001da 5f pop rdi + 001db 5d pop rbp + 001dc c3 ret 0 ?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z ENDP ; ObfCombineOpaqueBranches _TEXT ENDS ; COMDAT text$x @@ -1415,7 +1392,7 @@ JmpLabel$ = 472 ?dtor$1@?0??ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z@4HA ENDP ; `ObfCombineOpaqueBranches'::`1'::dtor$1 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z _TEXT SEGMENT tv74 = 192 @@ -1437,57 +1414,51 @@ $LN5: 00016 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00022 48 8b fc mov rdi, rsp - 00025 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002f f3 ab rep stosd - 00031 48 8b 8c 24 18 - 01 00 00 mov rcx, QWORD PTR [rsp+280] - 00039 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp - 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00022 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp + 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 90 : return (NcDeepCopyPartialBlock(Start, End, Taken) && !NcDeepCopyPartialBlock(Start, End, NotTaken)); - 00045 4c 8b 85 08 01 + 0002e 4c 8b 85 08 01 00 00 mov r8, QWORD PTR Taken$[rbp] - 0004c 48 8b 95 f8 00 + 00035 48 8b 95 f8 00 00 00 mov rdx, QWORD PTR End$[rbp] - 00053 48 8b 8d f0 00 + 0003c 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR Start$[rbp] - 0005a e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeepCopyPartialBlock - 0005f 85 c0 test eax, eax - 00061 74 2a je SHORT $LN3@ObfCreateO - 00063 4c 8b 85 00 01 + 00043 e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeepCopyPartialBlock + 00048 85 c0 test eax, eax + 0004a 74 2a je SHORT $LN3@ObfCreateO + 0004c 4c 8b 85 00 01 00 00 mov r8, QWORD PTR NotTaken$[rbp] - 0006a 48 8b 95 f8 00 + 00053 48 8b 95 f8 00 00 00 mov rdx, QWORD PTR End$[rbp] - 00071 48 8b 8d f0 00 + 0005a 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR Start$[rbp] - 00078 e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeepCopyPartialBlock - 0007d 85 c0 test eax, eax - 0007f 75 0c jne SHORT $LN3@ObfCreateO - 00081 c7 85 c0 00 00 + 00061 e8 00 00 00 00 call ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeepCopyPartialBlock + 00066 85 c0 test eax, eax + 00068 75 0c jne SHORT $LN3@ObfCreateO + 0006a c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv74[rbp], 1 - 0008b eb 0a jmp SHORT $LN4@ObfCreateO + 00074 eb 0a jmp SHORT $LN4@ObfCreateO $LN3@ObfCreateO: - 0008d c7 85 c0 00 00 + 00076 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv74[rbp], 0 $LN4@ObfCreateO: - 00097 8b 85 c0 00 00 + 00080 8b 85 c0 00 00 00 mov eax, DWORD PTR tv74[rbp] ; 91 : } - 0009d 48 8d a5 d8 00 + 00086 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 000a4 5f pop rdi - 000a5 5d pop rbp - 000a6 c3 ret 0 + 0008d 5f pop rdi + 0008e 5d pop rbp + 0008f c3 ret 0 ?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z ENDP ; ObfCreateOpaqueBranches _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z _TEXT SEGMENT MachineState$ = 8 @@ -1520,30 +1491,30 @@ $LN11: 0000b 48 81 ec 00 07 00 00 sub rsp, 1792 ; 00000700H 00012 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00017 48 8b fc mov rdi, rsp - 0001a b9 c0 01 00 00 mov ecx, 448 ; 000001c0H - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 8b 8c 24 28 07 + 00017 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 0001c b9 24 01 00 00 mov ecx, 292 ; 00000124H + 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00026 f3 ab rep stosd + 00028 8b 8c 24 28 07 00 00 mov ecx, DWORD PTR [rsp+1832] - 0002d 48 8b 05 00 00 + 0002f 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00034 48 33 c5 xor rax, rbp - 00037 48 89 85 c0 06 + 00036 48 33 c5 xor rax, rbp + 00039 48 89 85 c0 06 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp - 00045 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp + 00047 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 59 : XED_STATE MachineState; ; 60 : MachineState.mmode = XED_MACHINE_MODE_LONG_64; - 0004a c7 45 08 01 00 + 0004c c7 45 08 01 00 00 00 mov DWORD PTR MachineState$[rbp], 1 ; 61 : MachineState.stack_addr_width = XED_ADDRESS_WIDTH_64b; - 00051 c7 45 0c 08 00 + 00053 c7 45 0c 08 00 00 00 mov DWORD PTR MachineState$[rbp+4], 8 ; 62 : XED_ENCODER_INSTRUCTION EncoderInstruction; @@ -1553,204 +1524,204 @@ $LN11: ; 66 : ; 67 : XedInst1(&EncoderInstruction, MachineState, XED_ICLASS_JMP, DisplacementWidth, XedRelBr(0, DisplacementWidth)); - 00058 44 8b 85 f8 06 + 0005a 44 8b 85 f8 06 00 00 mov r8d, DWORD PTR DisplacementWidth$[rbp] - 0005f 33 d2 xor edx, edx - 00061 48 8d 8d c8 05 + 00061 33 d2 xor edx, edx + 00063 48 8d 8d c8 05 00 00 lea rcx, QWORD PTR $T9[rbp] - 00068 e8 00 00 00 00 call xed_relbr - 0006d 48 8d 8d 78 05 + 0006a e8 00 00 00 00 call xed_relbr + 0006f 48 8d 8d 78 05 00 00 lea rcx, QWORD PTR $T8[rbp] - 00074 48 8b f9 mov rdi, rcx - 00077 48 8b f0 mov rsi, rax - 0007a b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0007f f3 a4 rep movsb - 00081 48 8d 85 80 06 + 00076 48 8b f9 mov rdi, rcx + 00079 48 8b f0 mov rsi, rax + 0007c b9 30 00 00 00 mov ecx, 48 ; 00000030H + 00081 f3 a4 rep movsb + 00083 48 8d 85 80 06 00 00 lea rax, QWORD PTR $T13[rbp] - 00088 48 8d 8d 78 05 + 0008a 48 8d 8d 78 05 00 00 lea rcx, QWORD PTR $T8[rbp] - 0008f 48 8b f8 mov rdi, rax - 00092 48 8b f1 mov rsi, rcx - 00095 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0009a f3 a4 rep movsb - 0009c 48 8d 85 80 06 + 00091 48 8b f8 mov rdi, rax + 00094 48 8b f1 mov rsi, rcx + 00097 b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0009c f3 a4 rep movsb + 0009e 48 8d 85 80 06 00 00 lea rax, QWORD PTR $T13[rbp] - 000a3 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000a8 44 8b 8d f8 06 + 000a5 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000aa 44 8b 8d f8 06 00 00 mov r9d, DWORD PTR DisplacementWidth$[rbp] - 000af 41 b8 3c 01 00 + 000b1 41 b8 3c 01 00 00 mov r8d, 316 ; 0000013cH - 000b5 48 8b 55 08 mov rdx, QWORD PTR MachineState$[rbp] - 000b9 48 8d 4d 30 lea rcx, QWORD PTR EncoderInstruction$[rbp] - 000bd e8 00 00 00 00 call xed_inst1 + 000b7 48 8b 55 08 mov rdx, QWORD PTR MachineState$[rbp] + 000bb 48 8d 4d 30 lea rcx, QWORD PTR EncoderInstruction$[rbp] + 000bf e8 00 00 00 00 call xed_inst1 ; 68 : ; 69 : XedEncoderRequestZeroSetMode(&EncoderRequest, &MachineState); - 000c2 48 8d 55 08 lea rdx, QWORD PTR MachineState$[rbp] - 000c6 48 8d 8d f0 01 + 000c4 48 8d 55 08 lea rdx, QWORD PTR MachineState$[rbp] + 000c8 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 000cd e8 00 00 00 00 call xed_encoder_request_zero_set_mode + 000cf e8 00 00 00 00 call xed_encoder_request_zero_set_mode ; 70 : if (!XedConvertToEncoderRequest(&EncoderRequest, &EncoderInstruction)) - 000d2 48 8d 55 30 lea rdx, QWORD PTR EncoderInstruction$[rbp] - 000d6 48 8d 8d f0 01 + 000d4 48 8d 55 30 lea rdx, QWORD PTR EncoderInstruction$[rbp] + 000d8 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 000dd e8 00 00 00 00 call xed_convert_to_encoder_request - 000e2 85 c0 test eax, eax - 000e4 75 07 jne SHORT $LN2@ObfGenJmpT + 000df e8 00 00 00 00 call xed_convert_to_encoder_request + 000e4 85 c0 test eax, eax + 000e6 75 07 jne SHORT $LN2@ObfGenJmpT ; 71 : return NULL; - 000e6 33 c0 xor eax, eax - 000e8 e9 30 01 00 00 jmp $LN1@ObfGenJmpT + 000e8 33 c0 xor eax, eax + 000ea e9 30 01 00 00 jmp $LN1@ObfGenJmpT $LN2@ObfGenJmpT: ; 72 : ; 73 : if (XED_ERROR_NONE != XedEncode(&EncoderRequest, EncodeBuffer, 15, &ReturnedSize)) - 000ed 4c 8d 8d f4 02 + 000ef 4c 8d 8d f4 02 00 00 lea r9, QWORD PTR ReturnedSize$[rbp] - 000f4 41 b8 0f 00 00 + 000f6 41 b8 0f 00 00 00 mov r8d, 15 - 000fa 48 8d 95 c8 02 + 000fc 48 8d 95 c8 02 00 00 lea rdx, QWORD PTR EncodeBuffer$[rbp] - 00101 48 8d 8d f0 01 + 00103 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 00108 e8 00 00 00 00 call xed_encode - 0010d 85 c0 test eax, eax - 0010f 74 07 je SHORT $LN3@ObfGenJmpT + 0010a e8 00 00 00 00 call xed_encode + 0010f 85 c0 test eax, eax + 00111 74 07 je SHORT $LN3@ObfGenJmpT ; 74 : return NULL; - 00111 33 c0 xor eax, eax - 00113 e9 05 01 00 00 jmp $LN1@ObfGenJmpT + 00113 33 c0 xor eax, eax + 00115 e9 05 01 00 00 jmp $LN1@ObfGenJmpT $LN3@ObfGenJmpT: ; 75 : ; 76 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, EncodeBuffer, ReturnedSize); - 00118 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0011d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00122 48 89 85 38 06 + 0011a b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0011f e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00124 48 89 85 38 06 00 00 mov QWORD PTR $T11[rbp], rax - 00129 48 83 bd 38 06 + 0012b 48 83 bd 38 06 00 00 00 cmp QWORD PTR $T11[rbp], 0 - 00131 74 30 je SHORT $LN6@ObfGenJmpT - 00133 c7 44 24 20 00 + 00133 74 30 je SHORT $LN6@ObfGenJmpT + 00135 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0013b 44 8b 8d f4 02 + 0013d 44 8b 8d f4 02 00 00 mov r9d, DWORD PTR ReturnedSize$[rbp] - 00142 4c 8d 85 c8 02 + 00144 4c 8d 85 c8 02 00 00 lea r8, QWORD PTR EncodeBuffer$[rbp] - 00149 ba 04 00 00 00 mov edx, 4 - 0014e 48 8b 8d 38 06 + 0014b ba 04 00 00 00 mov edx, 4 + 00150 48 8b 8d 38 06 00 00 mov rcx, QWORD PTR $T11[rbp] - 00155 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 0015a 48 89 85 b8 06 + 00157 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 0015c 48 89 85 b8 06 00 00 mov QWORD PTR tv133[rbp], rax - 00161 eb 0b jmp SHORT $LN7@ObfGenJmpT + 00163 eb 0b jmp SHORT $LN7@ObfGenJmpT $LN6@ObfGenJmpT: - 00163 48 c7 85 b8 06 + 00165 48 c7 85 b8 06 00 00 00 00 00 00 mov QWORD PTR tv133[rbp], 0 $LN7@ObfGenJmpT: - 0016e 48 8b 85 b8 06 + 00170 48 8b 85 b8 06 00 00 mov rax, QWORD PTR tv133[rbp] - 00175 48 89 85 18 06 + 00177 48 89 85 18 06 00 00 mov QWORD PTR $T10[rbp], rax - 0017c 48 8b 85 18 06 + 0017e 48 8b 85 18 06 00 00 mov rax, QWORD PTR $T10[rbp] - 00183 48 89 85 18 03 + 00185 48 89 85 18 03 00 00 mov QWORD PTR Link$[rbp], rax ; 77 : if (XED_ERROR_NONE != XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize)) - 0018a 48 8b 85 18 03 + 0018c 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 00191 48 83 c0 30 add rax, 48 ; 00000030H - 00195 48 8b 8d 18 03 + 00193 48 83 c0 30 add rax, 48 ; 00000030H + 00197 48 8b 8d 18 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 0019c 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 001a0 48 8b 8d 18 03 + 0019e 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 001a2 48 8b 8d 18 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 001a7 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 001ab 48 8b c8 mov rcx, rax - 001ae e8 00 00 00 00 call xed_decode - 001b3 85 c0 test eax, eax - 001b5 74 41 je SHORT $LN4@ObfGenJmpT + 001a9 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 001ad 48 8b c8 mov rcx, rax + 001b0 e8 00 00 00 00 call xed_decode + 001b5 85 c0 test eax, eax + 001b7 74 41 je SHORT $LN4@ObfGenJmpT ; 78 : { ; 79 : delete Link; - 001b7 48 8b 85 18 03 + 001b9 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 001be 48 89 85 58 06 + 001c0 48 89 85 58 06 00 00 mov QWORD PTR $T12[rbp], rax - 001c5 48 83 bd 58 06 + 001c7 48 83 bd 58 06 00 00 00 cmp QWORD PTR $T12[rbp], 0 - 001cd 74 1a je SHORT $LN8@ObfGenJmpT - 001cf ba 01 00 00 00 mov edx, 1 - 001d4 48 8b 8d 58 06 + 001cf 74 1a je SHORT $LN8@ObfGenJmpT + 001d1 ba 01 00 00 00 mov edx, 1 + 001d6 48 8b 8d 58 06 00 00 mov rcx, QWORD PTR $T12[rbp] - 001db e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 001e0 48 89 85 b8 06 + 001dd e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 001e2 48 89 85 b8 06 00 00 mov QWORD PTR tv145[rbp], rax - 001e7 eb 0b jmp SHORT $LN9@ObfGenJmpT + 001e9 eb 0b jmp SHORT $LN9@ObfGenJmpT $LN8@ObfGenJmpT: - 001e9 48 c7 85 b8 06 + 001eb 48 c7 85 b8 06 00 00 00 00 00 00 mov QWORD PTR tv145[rbp], 0 $LN9@ObfGenJmpT: ; 80 : return NULL; - 001f4 33 c0 xor eax, eax - 001f6 eb 25 jmp SHORT $LN1@ObfGenJmpT + 001f6 33 c0 xor eax, eax + 001f8 eb 25 jmp SHORT $LN1@ObfGenJmpT $LN4@ObfGenJmpT: ; 81 : } ; 82 : Link->Label = LabelId; - 001f8 48 8b 85 18 03 + 001fa 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 001ff 8b 8d f0 06 00 + 00201 8b 8d f0 06 00 00 mov ecx, DWORD PTR LabelId$[rbp] - 00205 89 48 1c mov DWORD PTR [rax+28], ecx + 00207 89 48 1c mov DWORD PTR [rax+28], ecx ; 83 : Link->Flags = (CODE_FLAG_IS_INST | CODE_FLAG_IS_REL_JMP); - 00208 48 8b 85 18 03 + 0020a 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 0020f c7 40 18 06 00 + 00211 c7 40 18 06 00 00 00 mov DWORD PTR [rax+24], 6 ; 84 : ; 85 : return Link; - 00216 48 8b 85 18 03 + 00218 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] $LN1@ObfGenJmpT: ; 86 : } - 0021d 48 8b f8 mov rdi, rax - 00220 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00224 48 8d 15 00 00 + 0021f 48 8b f8 mov rdi, rax + 00222 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00226 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcFrameData - 0022b e8 00 00 00 00 call _RTC_CheckStackVars - 00230 48 8b c7 mov rax, rdi - 00233 48 8b 8d c0 06 + 0022d e8 00 00 00 00 call _RTC_CheckStackVars + 00232 48 8b c7 mov rax, rdi + 00235 48 8b 8d c0 06 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0023a 48 33 cd xor rcx, rbp - 0023d e8 00 00 00 00 call __security_check_cookie - 00242 48 8d a5 d0 06 + 0023c 48 33 cd xor rcx, rbp + 0023f e8 00 00 00 00 call __security_check_cookie + 00244 48 8d a5 d0 06 00 00 lea rsp, QWORD PTR [rbp+1744] - 00249 5f pop rdi - 0024a 5e pop rsi - 0024b 5d pop rbp - 0024c c3 ret 0 + 0024b 5f pop rdi + 0024c 5e pop rsi + 0024d 5d pop rbp + 0024e c3 ret 0 ?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ENDP ; ObfGenJmpToLabel _TEXT ENDS ; COMDAT text$x @@ -1827,7 +1798,7 @@ DisplacementWidth$ = 1784 ?dtor$0@?0??ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA ENDP ; `ObfGenJmpToLabel'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z _TEXT SEGMENT MachineState$ = 8 @@ -1862,30 +1833,30 @@ $LN11: 0000b 48 81 ec 20 07 00 00 sub rsp, 1824 ; 00000720H 00012 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00017 48 8b fc mov rdi, rsp - 0001a b9 c8 01 00 00 mov ecx, 456 ; 000001c8H - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 8b 8c 24 48 07 + 00017 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 0001c b9 2c 01 00 00 mov ecx, 300 ; 0000012cH + 00021 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00026 f3 ab rep stosd + 00028 8b 8c 24 48 07 00 00 mov ecx, DWORD PTR [rsp+1864] - 0002d 48 8b 05 00 00 + 0002f 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00034 48 33 c5 xor rax, rbp - 00037 48 89 85 e0 06 + 00036 48 33 c5 xor rax, rbp + 00039 48 89 85 e0 06 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp - 00045 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp + 00047 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 28 : XED_STATE MachineState; ; 29 : MachineState.mmode = XED_MACHINE_MODE_LONG_64; - 0004a c7 45 08 01 00 + 0004c c7 45 08 01 00 00 00 mov DWORD PTR MachineState$[rbp], 1 ; 30 : MachineState.stack_addr_width = XED_ADDRESS_WIDTH_64b; - 00051 c7 45 0c 08 00 + 00053 c7 45 0c 08 00 00 00 mov DWORD PTR MachineState$[rbp+4], 8 ; 31 : XED_ENCODER_INSTRUCTION EncoderInstruction; @@ -1895,211 +1866,211 @@ $LN11: ; 35 : ; 36 : XedInst1(&EncoderInstruction, MachineState, ObfGetRandomJccClass(), DisplacementWidth, XedRelBr(0, DisplacementWidth)); - 00058 44 8b 85 18 07 + 0005a 44 8b 85 18 07 00 00 mov r8d, DWORD PTR DisplacementWidth$[rbp] - 0005f 33 d2 xor edx, edx - 00061 48 8d 8d c8 05 + 00061 33 d2 xor edx, edx + 00063 48 8d 8d c8 05 00 00 lea rcx, QWORD PTR $T9[rbp] - 00068 e8 00 00 00 00 call xed_relbr - 0006d 48 8d 8d 78 05 + 0006a e8 00 00 00 00 call xed_relbr + 0006f 48 8d 8d 78 05 00 00 lea rcx, QWORD PTR $T8[rbp] - 00074 48 8b f9 mov rdi, rcx - 00077 48 8b f0 mov rsi, rax - 0007a b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0007f f3 a4 rep movsb - 00081 e8 00 00 00 00 call ?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ ; ObfGetRandomJccClass - 00086 89 85 d4 06 00 + 00076 48 8b f9 mov rdi, rcx + 00079 48 8b f0 mov rsi, rax + 0007c b9 30 00 00 00 mov ecx, 48 ; 00000030H + 00081 f3 a4 rep movsb + 00083 e8 00 00 00 00 call ?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ ; ObfGetRandomJccClass + 00088 89 85 d4 06 00 00 mov DWORD PTR tv77[rbp], eax - 0008c 48 8b 45 08 mov rax, QWORD PTR MachineState$[rbp] - 00090 48 89 85 18 06 + 0008e 48 8b 45 08 mov rax, QWORD PTR MachineState$[rbp] + 00092 48 89 85 18 06 00 00 mov QWORD PTR $T10[rbp], rax - 00097 48 8d 85 a0 06 + 00099 48 8d 85 a0 06 00 00 lea rax, QWORD PTR $T14[rbp] - 0009e 48 8d 8d 78 05 + 000a0 48 8d 8d 78 05 00 00 lea rcx, QWORD PTR $T8[rbp] - 000a5 48 8b f8 mov rdi, rax - 000a8 48 8b f1 mov rsi, rcx - 000ab b9 30 00 00 00 mov ecx, 48 ; 00000030H - 000b0 f3 a4 rep movsb - 000b2 48 8d 85 a0 06 + 000a7 48 8b f8 mov rdi, rax + 000aa 48 8b f1 mov rsi, rcx + 000ad b9 30 00 00 00 mov ecx, 48 ; 00000030H + 000b2 f3 a4 rep movsb + 000b4 48 8d 85 a0 06 00 00 lea rax, QWORD PTR $T14[rbp] - 000b9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000be 44 8b 8d 18 07 + 000bb 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000c0 44 8b 8d 18 07 00 00 mov r9d, DWORD PTR DisplacementWidth$[rbp] - 000c5 44 8b 85 d4 06 + 000c7 44 8b 85 d4 06 00 00 mov r8d, DWORD PTR tv77[rbp] - 000cc 48 8b 95 18 06 + 000ce 48 8b 95 18 06 00 00 mov rdx, QWORD PTR $T10[rbp] - 000d3 48 8d 4d 30 lea rcx, QWORD PTR EncoderInstruction$[rbp] - 000d7 e8 00 00 00 00 call xed_inst1 + 000d5 48 8d 4d 30 lea rcx, QWORD PTR EncoderInstruction$[rbp] + 000d9 e8 00 00 00 00 call xed_inst1 ; 37 : ; 38 : XedEncoderRequestZeroSetMode(&EncoderRequest, &MachineState); - 000dc 48 8d 55 08 lea rdx, QWORD PTR MachineState$[rbp] - 000e0 48 8d 8d f0 01 + 000de 48 8d 55 08 lea rdx, QWORD PTR MachineState$[rbp] + 000e2 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 000e7 e8 00 00 00 00 call xed_encoder_request_zero_set_mode + 000e9 e8 00 00 00 00 call xed_encoder_request_zero_set_mode ; 39 : if (!XedConvertToEncoderRequest(&EncoderRequest, &EncoderInstruction)) - 000ec 48 8d 55 30 lea rdx, QWORD PTR EncoderInstruction$[rbp] - 000f0 48 8d 8d f0 01 + 000ee 48 8d 55 30 lea rdx, QWORD PTR EncoderInstruction$[rbp] + 000f2 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 000f7 e8 00 00 00 00 call xed_convert_to_encoder_request - 000fc 85 c0 test eax, eax - 000fe 75 07 jne SHORT $LN2@ObfGenRand + 000f9 e8 00 00 00 00 call xed_convert_to_encoder_request + 000fe 85 c0 test eax, eax + 00100 75 07 jne SHORT $LN2@ObfGenRand ; 40 : return NULL; - 00100 33 c0 xor eax, eax - 00102 e9 30 01 00 00 jmp $LN1@ObfGenRand + 00102 33 c0 xor eax, eax + 00104 e9 30 01 00 00 jmp $LN1@ObfGenRand $LN2@ObfGenRand: ; 41 : ; 42 : if (XED_ERROR_NONE != XedEncode(&EncoderRequest, EncodeBuffer, 15, &ReturnedSize)) - 00107 4c 8d 8d f4 02 + 00109 4c 8d 8d f4 02 00 00 lea r9, QWORD PTR ReturnedSize$[rbp] - 0010e 41 b8 0f 00 00 + 00110 41 b8 0f 00 00 00 mov r8d, 15 - 00114 48 8d 95 c8 02 + 00116 48 8d 95 c8 02 00 00 lea rdx, QWORD PTR EncodeBuffer$[rbp] - 0011b 48 8d 8d f0 01 + 0011d 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 00122 e8 00 00 00 00 call xed_encode - 00127 85 c0 test eax, eax - 00129 74 07 je SHORT $LN3@ObfGenRand + 00124 e8 00 00 00 00 call xed_encode + 00129 85 c0 test eax, eax + 0012b 74 07 je SHORT $LN3@ObfGenRand ; 43 : return NULL; - 0012b 33 c0 xor eax, eax - 0012d e9 05 01 00 00 jmp $LN1@ObfGenRand + 0012d 33 c0 xor eax, eax + 0012f e9 05 01 00 00 jmp $LN1@ObfGenRand $LN3@ObfGenRand: ; 44 : ; 45 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, EncodeBuffer, ReturnedSize); - 00132 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00137 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 0013c 48 89 85 58 06 + 00134 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00139 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0013e 48 89 85 58 06 00 00 mov QWORD PTR $T12[rbp], rax - 00143 48 83 bd 58 06 + 00145 48 83 bd 58 06 00 00 00 cmp QWORD PTR $T12[rbp], 0 - 0014b 74 30 je SHORT $LN6@ObfGenRand - 0014d c7 44 24 20 00 + 0014d 74 30 je SHORT $LN6@ObfGenRand + 0014f c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00155 44 8b 8d f4 02 + 00157 44 8b 8d f4 02 00 00 mov r9d, DWORD PTR ReturnedSize$[rbp] - 0015c 4c 8d 85 c8 02 + 0015e 4c 8d 85 c8 02 00 00 lea r8, QWORD PTR EncodeBuffer$[rbp] - 00163 ba 04 00 00 00 mov edx, 4 - 00168 48 8b 8d 58 06 + 00165 ba 04 00 00 00 mov edx, 4 + 0016a 48 8b 8d 58 06 00 00 mov rcx, QWORD PTR $T12[rbp] - 0016f e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00174 48 89 85 d8 06 + 00171 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00176 48 89 85 d8 06 00 00 mov QWORD PTR tv137[rbp], rax - 0017b eb 0b jmp SHORT $LN7@ObfGenRand + 0017d eb 0b jmp SHORT $LN7@ObfGenRand $LN6@ObfGenRand: - 0017d 48 c7 85 d8 06 + 0017f 48 c7 85 d8 06 00 00 00 00 00 00 mov QWORD PTR tv137[rbp], 0 $LN7@ObfGenRand: - 00188 48 8b 85 d8 06 + 0018a 48 8b 85 d8 06 00 00 mov rax, QWORD PTR tv137[rbp] - 0018f 48 89 85 38 06 + 00191 48 89 85 38 06 00 00 mov QWORD PTR $T11[rbp], rax - 00196 48 8b 85 38 06 + 00198 48 8b 85 38 06 00 00 mov rax, QWORD PTR $T11[rbp] - 0019d 48 89 85 18 03 + 0019f 48 89 85 18 03 00 00 mov QWORD PTR Link$[rbp], rax ; 46 : if (XED_ERROR_NONE != XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize)) - 001a4 48 8b 85 18 03 + 001a6 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 001ab 48 83 c0 30 add rax, 48 ; 00000030H - 001af 48 8b 8d 18 03 + 001ad 48 83 c0 30 add rax, 48 ; 00000030H + 001b1 48 8b 8d 18 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 001b6 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 001ba 48 8b 8d 18 03 + 001b8 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 001bc 48 8b 8d 18 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 001c1 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 001c5 48 8b c8 mov rcx, rax - 001c8 e8 00 00 00 00 call xed_decode - 001cd 85 c0 test eax, eax - 001cf 74 41 je SHORT $LN4@ObfGenRand + 001c3 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 001c7 48 8b c8 mov rcx, rax + 001ca e8 00 00 00 00 call xed_decode + 001cf 85 c0 test eax, eax + 001d1 74 41 je SHORT $LN4@ObfGenRand ; 47 : { ; 48 : delete Link; - 001d1 48 8b 85 18 03 + 001d3 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 001d8 48 89 85 78 06 + 001da 48 89 85 78 06 00 00 mov QWORD PTR $T13[rbp], rax - 001df 48 83 bd 78 06 + 001e1 48 83 bd 78 06 00 00 00 cmp QWORD PTR $T13[rbp], 0 - 001e7 74 1a je SHORT $LN8@ObfGenRand - 001e9 ba 01 00 00 00 mov edx, 1 - 001ee 48 8b 8d 78 06 + 001e9 74 1a je SHORT $LN8@ObfGenRand + 001eb ba 01 00 00 00 mov edx, 1 + 001f0 48 8b 8d 78 06 00 00 mov rcx, QWORD PTR $T13[rbp] - 001f5 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 001fa 48 89 85 d8 06 + 001f7 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 001fc 48 89 85 d8 06 00 00 mov QWORD PTR tv149[rbp], rax - 00201 eb 0b jmp SHORT $LN9@ObfGenRand + 00203 eb 0b jmp SHORT $LN9@ObfGenRand $LN8@ObfGenRand: - 00203 48 c7 85 d8 06 + 00205 48 c7 85 d8 06 00 00 00 00 00 00 mov QWORD PTR tv149[rbp], 0 $LN9@ObfGenRand: ; 49 : return NULL; - 0020e 33 c0 xor eax, eax - 00210 eb 25 jmp SHORT $LN1@ObfGenRand + 00210 33 c0 xor eax, eax + 00212 eb 25 jmp SHORT $LN1@ObfGenRand $LN4@ObfGenRand: ; 50 : } ; 51 : Link->Label = LabelId; - 00212 48 8b 85 18 03 + 00214 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 00219 8b 8d 10 07 00 + 0021b 8b 8d 10 07 00 00 mov ecx, DWORD PTR LabelId$[rbp] - 0021f 89 48 1c mov DWORD PTR [rax+28], ecx + 00221 89 48 1c mov DWORD PTR [rax+28], ecx ; 52 : Link->Flags = (CODE_FLAG_IS_INST | CODE_FLAG_IS_REL_JMP); - 00222 48 8b 85 18 03 + 00224 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 00229 c7 40 18 06 00 + 0022b c7 40 18 06 00 00 00 mov DWORD PTR [rax+24], 6 ; 53 : ; 54 : return Link; - 00230 48 8b 85 18 03 + 00232 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] $LN1@ObfGenRand: ; 55 : } - 00237 48 8b f8 mov rdi, rax - 0023a 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 0023e 48 8d 15 00 00 + 00239 48 8b f8 mov rdi, rax + 0023c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00240 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcFrameData - 00245 e8 00 00 00 00 call _RTC_CheckStackVars - 0024a 48 8b c7 mov rax, rdi - 0024d 48 8b 8d e0 06 + 00247 e8 00 00 00 00 call _RTC_CheckStackVars + 0024c 48 8b c7 mov rax, rdi + 0024f 48 8b 8d e0 06 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00254 48 33 cd xor rcx, rbp - 00257 e8 00 00 00 00 call __security_check_cookie - 0025c 48 8d a5 f0 06 + 00256 48 33 cd xor rcx, rbp + 00259 e8 00 00 00 00 call __security_check_cookie + 0025e 48 8d a5 f0 06 00 00 lea rsp, QWORD PTR [rbp+1776] - 00263 5f pop rdi - 00264 5e pop rsi - 00265 5d pop rbp - 00266 c3 ret 0 + 00265 5f pop rdi + 00266 5e pop rsi + 00267 5d pop rbp + 00268 c3 ret 0 ?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ENDP ; ObfGenRandomJcc _TEXT ENDS ; COMDAT text$x @@ -2180,7 +2151,7 @@ DisplacementWidth$ = 1816 ?dtor$0@?0??ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z@4HA ENDP ; `ObfGenRandomJcc'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ _TEXT SEGMENT tv66 = 192 @@ -2194,159 +2165,154 @@ $LN21: 00003 48 81 ec f8 00 00 00 sub rsp, 248 ; 000000f8H 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0000f 48 8b fc mov rdi, rsp - 00012 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH - 00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0001c f3 ab rep stosd - 0001e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0000f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp + 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : switch (rand() % 15) - 0002a ff 15 00 00 00 + 0001b ff 15 00 00 00 00 call QWORD PTR __imp_rand - 00030 99 cdq - 00031 b9 0f 00 00 00 mov ecx, 15 - 00036 f7 f9 idiv ecx - 00038 8b c2 mov eax, edx - 0003a 89 85 c0 00 00 + 00021 99 cdq + 00022 b9 0f 00 00 00 mov ecx, 15 + 00027 f7 f9 idiv ecx + 00029 8b c2 mov eax, edx + 0002b 89 85 c0 00 00 00 mov DWORD PTR tv66[rbp], eax - 00040 83 bd c0 00 00 + 00031 83 bd c0 00 00 00 0e cmp DWORD PTR tv66[rbp], 14 - 00047 0f 87 83 00 00 + 00038 0f 87 83 00 00 00 ja $LN2@ObfGetRand - 0004d 48 63 85 c0 00 + 0003e 48 63 85 c0 00 00 00 movsxd rax, DWORD PTR tv66[rbp] - 00054 48 8d 0d 00 00 + 00045 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__ImageBase - 0005b 8b 84 81 00 00 + 0004c 8b 84 81 00 00 00 00 mov eax, DWORD PTR $LN20@ObfGetRand[rcx+rax*4] - 00062 48 03 c1 add rax, rcx - 00065 ff e0 jmp rax + 00053 48 03 c1 add rax, rcx + 00056 ff e0 jmp rax $LN4@ObfGetRand: ; 6 : { ; 7 : case 0: return XED_ICLASS_JL; - 00067 b8 3a 01 00 00 mov eax, 314 ; 0000013aH - 0006c eb 67 jmp SHORT $LN1@ObfGetRand + 00058 b8 3a 01 00 00 mov eax, 314 ; 0000013aH + 0005d eb 67 jmp SHORT $LN1@ObfGetRand $LN5@ObfGetRand: ; 8 : case 1: return XED_ICLASS_JLE; - 0006e b8 3b 01 00 00 mov eax, 315 ; 0000013bH - 00073 eb 60 jmp SHORT $LN1@ObfGetRand + 0005f b8 3b 01 00 00 mov eax, 315 ; 0000013bH + 00064 eb 60 jmp SHORT $LN1@ObfGetRand $LN6@ObfGetRand: ; 9 : case 2: return XED_ICLASS_JNB; - 00075 b8 3e 01 00 00 mov eax, 318 ; 0000013eH - 0007a eb 59 jmp SHORT $LN1@ObfGetRand + 00066 b8 3e 01 00 00 mov eax, 318 ; 0000013eH + 0006b eb 59 jmp SHORT $LN1@ObfGetRand $LN7@ObfGetRand: ; 10 : case 3: return XED_ICLASS_JNBE; - 0007c b8 3f 01 00 00 mov eax, 319 ; 0000013fH - 00081 eb 52 jmp SHORT $LN1@ObfGetRand + 0006d b8 3f 01 00 00 mov eax, 319 ; 0000013fH + 00072 eb 52 jmp SHORT $LN1@ObfGetRand $LN8@ObfGetRand: ; 11 : case 4: return XED_ICLASS_JNL; - 00083 b8 40 01 00 00 mov eax, 320 ; 00000140H - 00088 eb 4b jmp SHORT $LN1@ObfGetRand + 00074 b8 40 01 00 00 mov eax, 320 ; 00000140H + 00079 eb 4b jmp SHORT $LN1@ObfGetRand $LN9@ObfGetRand: ; 12 : case 5: return XED_ICLASS_JNLE; - 0008a b8 41 01 00 00 mov eax, 321 ; 00000141H - 0008f eb 44 jmp SHORT $LN1@ObfGetRand + 0007b b8 41 01 00 00 mov eax, 321 ; 00000141H + 00080 eb 44 jmp SHORT $LN1@ObfGetRand $LN10@ObfGetRand: ; 13 : case 6: return XED_ICLASS_JNO; - 00091 b8 42 01 00 00 mov eax, 322 ; 00000142H - 00096 eb 3d jmp SHORT $LN1@ObfGetRand + 00082 b8 42 01 00 00 mov eax, 322 ; 00000142H + 00087 eb 3d jmp SHORT $LN1@ObfGetRand $LN11@ObfGetRand: ; 14 : case 7: return XED_ICLASS_JNP; - 00098 b8 43 01 00 00 mov eax, 323 ; 00000143H - 0009d eb 36 jmp SHORT $LN1@ObfGetRand + 00089 b8 43 01 00 00 mov eax, 323 ; 00000143H + 0008e eb 36 jmp SHORT $LN1@ObfGetRand $LN12@ObfGetRand: ; 15 : case 8: return XED_ICLASS_JNS; - 0009f b8 44 01 00 00 mov eax, 324 ; 00000144H - 000a4 eb 2f jmp SHORT $LN1@ObfGetRand + 00090 b8 44 01 00 00 mov eax, 324 ; 00000144H + 00095 eb 2f jmp SHORT $LN1@ObfGetRand $LN13@ObfGetRand: ; 16 : case 9: return XED_ICLASS_JNZ; - 000a6 b8 45 01 00 00 mov eax, 325 ; 00000145H - 000ab eb 28 jmp SHORT $LN1@ObfGetRand + 00097 b8 45 01 00 00 mov eax, 325 ; 00000145H + 0009c eb 28 jmp SHORT $LN1@ObfGetRand $LN14@ObfGetRand: ; 17 : case 10: return XED_ICLASS_JO; - 000ad b8 46 01 00 00 mov eax, 326 ; 00000146H - 000b2 eb 21 jmp SHORT $LN1@ObfGetRand + 0009e b8 46 01 00 00 mov eax, 326 ; 00000146H + 000a3 eb 21 jmp SHORT $LN1@ObfGetRand $LN15@ObfGetRand: ; 18 : case 11: return XED_ICLASS_JP; - 000b4 b8 47 01 00 00 mov eax, 327 ; 00000147H - 000b9 eb 1a jmp SHORT $LN1@ObfGetRand + 000a5 b8 47 01 00 00 mov eax, 327 ; 00000147H + 000aa eb 1a jmp SHORT $LN1@ObfGetRand $LN16@ObfGetRand: ; 19 : case 12: return XED_ICLASS_JRCXZ; - 000bb b8 48 01 00 00 mov eax, 328 ; 00000148H - 000c0 eb 13 jmp SHORT $LN1@ObfGetRand + 000ac b8 48 01 00 00 mov eax, 328 ; 00000148H + 000b1 eb 13 jmp SHORT $LN1@ObfGetRand $LN17@ObfGetRand: ; 20 : case 13: return XED_ICLASS_JS; - 000c2 b8 49 01 00 00 mov eax, 329 ; 00000149H - 000c7 eb 0c jmp SHORT $LN1@ObfGetRand + 000b3 b8 49 01 00 00 mov eax, 329 ; 00000149H + 000b8 eb 0c jmp SHORT $LN1@ObfGetRand $LN18@ObfGetRand: ; 21 : case 14: return XED_ICLASS_JZ; - 000c9 b8 4a 01 00 00 mov eax, 330 ; 0000014aH - 000ce eb 05 jmp SHORT $LN1@ObfGetRand + 000ba b8 4a 01 00 00 mov eax, 330 ; 0000014aH + 000bf eb 05 jmp SHORT $LN1@ObfGetRand $LN2@ObfGetRand: ; 22 : } ; 23 : return XED_ICLASS_JLE; - 000d0 b8 3b 01 00 00 mov eax, 315 ; 0000013bH + 000c1 b8 3b 01 00 00 mov eax, 315 ; 0000013bH $LN1@ObfGetRand: ; 24 : } - 000d5 48 8d a5 d8 00 + 000c6 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 - 000df 90 npad 1 + 000cd 5f pop rdi + 000ce 5d pop rbp + 000cf c3 ret 0 $LN20@ObfGetRand: - 000e0 00 00 00 00 DD $LN4@ObfGetRand - 000e4 00 00 00 00 DD $LN5@ObfGetRand - 000e8 00 00 00 00 DD $LN6@ObfGetRand - 000ec 00 00 00 00 DD $LN7@ObfGetRand - 000f0 00 00 00 00 DD $LN8@ObfGetRand - 000f4 00 00 00 00 DD $LN9@ObfGetRand - 000f8 00 00 00 00 DD $LN10@ObfGetRand - 000fc 00 00 00 00 DD $LN11@ObfGetRand - 00100 00 00 00 00 DD $LN12@ObfGetRand - 00104 00 00 00 00 DD $LN13@ObfGetRand - 00108 00 00 00 00 DD $LN14@ObfGetRand - 0010c 00 00 00 00 DD $LN15@ObfGetRand - 00110 00 00 00 00 DD $LN16@ObfGetRand - 00114 00 00 00 00 DD $LN17@ObfGetRand - 00118 00 00 00 00 DD $LN18@ObfGetRand + 000d0 00 00 00 00 DD $LN4@ObfGetRand + 000d4 00 00 00 00 DD $LN5@ObfGetRand + 000d8 00 00 00 00 DD $LN6@ObfGetRand + 000dc 00 00 00 00 DD $LN7@ObfGetRand + 000e0 00 00 00 00 DD $LN8@ObfGetRand + 000e4 00 00 00 00 DD $LN9@ObfGetRand + 000e8 00 00 00 00 DD $LN10@ObfGetRand + 000ec 00 00 00 00 DD $LN11@ObfGetRand + 000f0 00 00 00 00 DD $LN12@ObfGetRand + 000f4 00 00 00 00 DD $LN13@ObfGetRand + 000f8 00 00 00 00 DD $LN14@ObfGetRand + 000fc 00 00 00 00 DD $LN15@ObfGetRand + 00100 00 00 00 00 DD $LN16@ObfGetRand + 00104 00 00 00 00 DD $LN17@ObfGetRand + 00108 00 00 00 00 DD $LN18@ObfGetRand ?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ ENDP ; ObfGetRandomJccClass _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -2363,36 +2329,30 @@ $LN4: 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 fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8b 8d e0 00 + 00017 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00035 e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK - 0003a 8b 85 e8 00 00 + 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] - 00040 83 e0 01 and eax, 1 - 00043 85 c0 test eax, eax - 00045 74 11 je SHORT $LN2@scalar - 00047 ba f0 00 00 00 mov edx, 240 ; 000000f0H - 0004c 48 8b 8d e0 00 + 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] - 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00058 48 8b 85 e0 00 + 00041 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8d a5 c8 00 + 00048 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00066 5f pop rdi - 00067 5d pop rbp - 00068 c3 ret 0 + 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:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-encoder-hl.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h ; COMDAT xed_inst1 _TEXT SEGMENT inst$ = 224 @@ -2414,86 +2374,80 @@ xed_inst1 PROC ; COMDAT 00017 48 81 ec e0 00 00 00 sub rsp, 224 ; 000000e0H 0001e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00023 48 8b fc mov rdi, rsp - 00026 b9 38 00 00 00 mov ecx, 56 ; 00000038H - 0002b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00030 f3 ab rep stosd - 00032 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0003a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__21860875_xed-encoder-hl@h - 00041 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00023 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1C89993E_xed-encoder-hl@h + 0002a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 491 : ; 492 : inst->mode=mode; - 00046 48 8b 85 e0 00 + 0002f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 0004d 48 8b 8d e8 00 + 00036 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR mode$[rbp] - 00054 48 89 08 mov QWORD PTR [rax], rcx + 0003d 48 89 08 mov QWORD PTR [rax], rcx ; 493 : inst->iclass = iclass; - 00057 48 8b 85 e0 00 + 00040 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 0005e 8b 8d f0 00 00 + 00047 8b 8d f0 00 00 00 mov ecx, DWORD PTR iclass$[rbp] - 00064 89 48 08 mov DWORD PTR [rax+8], ecx + 0004d 89 48 08 mov DWORD PTR [rax+8], ecx ; 494 : inst->effective_operand_width = effective_operand_width; - 00067 48 8b 85 e0 00 + 00050 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 0006e 8b 8d f8 00 00 + 00057 8b 8d f8 00 00 00 mov ecx, DWORD PTR effective_operand_width$[rbp] - 00074 89 48 0c mov DWORD PTR [rax+12], ecx + 0005d 89 48 0c mov DWORD PTR [rax+12], ecx ; 495 : inst->effective_address_width = 0; - 00077 48 8b 85 e0 00 + 00060 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 0007e c7 40 10 00 00 + 00067 c7 40 10 00 00 00 00 mov DWORD PTR [rax+16], 0 ; 496 : inst->prefixes.i = 0; - 00085 48 8b 85 e0 00 + 0006e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 0008c c7 40 14 00 00 + 00075 c7 40 14 00 00 00 00 mov DWORD PTR [rax+20], 0 ; 497 : inst->operands[0] = op0; - 00093 b8 30 00 00 00 mov eax, 48 ; 00000030H - 00098 48 6b c0 00 imul rax, rax, 0 - 0009c 48 8b 8d e0 00 + 0007c b8 30 00 00 00 mov eax, 48 ; 00000030H + 00081 48 6b c0 00 imul rax, rax, 0 + 00085 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR inst$[rbp] - 000a3 48 8d 7c 01 20 lea rdi, QWORD PTR [rcx+rax+32] - 000a8 48 8b b5 00 01 + 0008c 48 8d 7c 01 20 lea rdi, QWORD PTR [rcx+rax+32] + 00091 48 8b b5 00 01 00 00 mov rsi, QWORD PTR op0$[rbp] - 000af b9 30 00 00 00 mov ecx, 48 ; 00000030H - 000b4 f3 a4 rep movsb + 00098 b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0009d f3 a4 rep movsb ; 498 : inst->noperands = 1; - 000b6 48 8b 85 e0 00 + 0009f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 000bd c7 40 18 01 00 + 000a6 c7 40 18 01 00 00 00 mov DWORD PTR [rax+24], 1 ; 499 : } - 000c4 48 8d a5 c0 00 + 000ad 48 8d a5 c0 00 00 00 lea rsp, QWORD PTR [rbp+192] - 000cb 5f pop rdi - 000cc 5e pop rsi - 000cd 5d pop rbp - 000ce c3 ret 0 + 000b4 5f pop rdi + 000b5 5e pop rsi + 000b6 5d pop rbp + 000b7 c3 ret 0 xed_inst1 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\IntelXED\build\obj\wkit\include\xed\xed-encoder-hl.h +; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h ; COMDAT xed_relbr _TEXT SEGMENT o$ = 8 @@ -2514,72 +2468,72 @@ xed_relbr PROC ; COMDAT 00011 48 81 ec 30 01 00 00 sub rsp, 304 ; 00000130H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8b fc mov rdi, rsp - 00020 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 0001d 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] + 00022 b9 14 00 00 00 mov ecx, 20 + 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002c f3 ab rep stosd + 0002e 48 8b 8c 24 58 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 08 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 08 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__21860875_xed-encoder-hl@h - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1C89993E_xed-encoder-hl@h + 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 106 : xed_encoder_operand_t o; ; 107 : o.type = XED_ENCODER_OPERAND_TYPE_BRDISP; - 00051 c7 45 08 01 00 + 00053 c7 45 08 01 00 00 00 mov DWORD PTR o$[rbp], 1 ; 108 : o.u.brdisp = brdisp; - 00058 8b 85 38 01 00 + 0005a 8b 85 38 01 00 00 mov eax, DWORD PTR brdisp$[rbp] - 0005e 89 45 10 mov DWORD PTR o$[rbp+8], eax + 00060 89 45 10 mov DWORD PTR o$[rbp+8], eax ; 109 : o.width_bits = width_bits; - 00061 8b 85 40 01 00 + 00063 8b 85 40 01 00 00 mov eax, DWORD PTR width_bits$[rbp] - 00067 89 45 30 mov DWORD PTR o$[rbp+40], eax + 00069 89 45 30 mov DWORD PTR o$[rbp+40], eax ; 110 : return o; - 0006a 48 8d 45 08 lea rax, QWORD PTR o$[rbp] - 0006e 48 8b bd 30 01 + 0006c 48 8d 45 08 lea rax, QWORD PTR o$[rbp] + 00070 48 8b bd 30 01 00 00 mov rdi, QWORD PTR $T4[rbp] - 00075 48 8b f0 mov rsi, rax - 00078 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0007d f3 a4 rep movsb - 0007f 48 8b 85 30 01 + 00077 48 8b f0 mov rsi, rax + 0007a b9 30 00 00 00 mov ecx, 48 ; 00000030H + 0007f f3 a4 rep movsb + 00081 48 8b 85 30 01 00 00 mov rax, QWORD PTR $T4[rbp] ; 111 : } - 00086 48 8b f8 mov rdi, rax - 00089 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0008d 48 8d 15 00 00 + 00088 48 8b f8 mov rdi, rax + 0008b 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0008f 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:xed_relbr$rtcFrameData - 00094 e8 00 00 00 00 call _RTC_CheckStackVars - 00099 48 8b c7 mov rax, rdi - 0009c 48 8b 8d 08 01 + 00096 e8 00 00 00 00 call _RTC_CheckStackVars + 0009b 48 8b c7 mov rax, rdi + 0009e 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000a3 48 33 cd xor rcx, rbp - 000a6 e8 00 00 00 00 call __security_check_cookie - 000ab 48 8d a5 10 01 + 000a5 48 33 cd xor rcx, rbp + 000a8 e8 00 00 00 00 call __security_check_cookie + 000ad 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 000b2 5f pop rdi - 000b3 5e pop rsi - 000b4 5d pop rbp - 000b5 c3 ret 0 + 000b4 5f pop rdi + 000b5 5e pop rsi + 000b6 5d pop rbp + 000b7 c3 ret 0 xed_relbr ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -2590,7 +2544,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -2602,147 +2556,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -2753,7 +2701,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -2765,147 +2713,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; 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 @@ -2916,7 +2858,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -2927,104 +2869,98 @@ $LN7: 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 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 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] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 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 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 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 - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 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: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 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] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 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] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; 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 @@ -3041,79 +2977,73 @@ $LN4: 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 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 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 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 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 - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_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); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 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] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 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.27.29110\include\xlocale +; 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 @@ -3132,7 +3062,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 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 @@ -3143,251 +3073,251 @@ $LN12: 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 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 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] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 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] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 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 -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 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 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 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] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 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] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 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] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 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 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 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 - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 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 -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 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] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 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 - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 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] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 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] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 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] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 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 - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 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] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 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] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -3410,40 +3340,34 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 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] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -3460,25 +3384,18 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -3493,25 +3410,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -3526,25 +3436,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -3557,21 +3460,14 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 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 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/RipAndInst.cod b/CodeVirtualizer/x64/Debug/RipAndInst.cod index 204c1cd..abd52da 100644 --- a/CodeVirtualizer/x64/Debug/RipAndInst.cod +++ b/CodeVirtualizer/x64/Debug/RipAndInst.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@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 @@ -33,55 +33,56 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon 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 -__886F7F70_xloctime DB 01H -__3DD0E9E9_xed-util@h DB 01H -__209FD46F_xed-iform-map@h DB 01H -__4E05E119_xed-inst@h DB 01H -__0607FC5A_xed-flags@h DB 01H -__B4910D57_xed-operand-accessors@h DB 01H -__8663E876_xed-state@h DB 01H -__BB5B4FF8_xed-encode@h DB 01H -__21860875_xed-encoder-hl@h DB 01H -__F7815311_xed-decoded-inst-api@h DB 01H -__FA14AA08_RipAndInst@cpp DB 01H -__7EA464AF_istream DB 01H -__1D745195_ostream DB 01H -__6FFBAAB7_streambuf DB 01H -__528871F3_iterator DB 01H -__3E6EDFAA_iosfwd DB 01H -__CF1C1A3F_utility DB 01H -__38038D2D_xstddef DB 01H -__EE19A480_xatomic@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 +__4D8C5412_RipAndInst@cpp 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 @@ -97,9 +98,9 @@ PUBLIC ?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRela PUBLIC ?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndW PUBLIC ?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndB PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `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@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +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 @@ -122,7 +123,6 @@ 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 @@ -130,67 +130,67 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + 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+70 + 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+70 + 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+75 + 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+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + 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+165 + 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+223 + 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+379 + 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+379 + 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$?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+377 + DD imagerel $LN6+379 DD imagerel $unwind$?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -202,7 +202,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+375 + DD imagerel $LN6+377 DD imagerel $unwind$?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -214,7 +214,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+366 + DD imagerel $LN6+368 DD imagerel $unwind$?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -241,22 +241,32 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_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.27.29110\include\xlocnum', 00H ; `string' + 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@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@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.27.29110\include\xlocale', 00H ; `string' +??_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 voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 0157H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -268,7 +278,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 0faH + DB 0feH DB 02H DB 09eH DB 00H @@ -287,7 +297,7 @@ $cppxdata$?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H +$unwind$?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H DD 0117331cH DD 070100031H DD 0500fH @@ -314,6 +324,16 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 0160H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -325,7 +345,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 015H, 02H + DB 01dH, 02H DB 02H DB 09eH DB 00H @@ -344,7 +364,7 @@ $cppxdata$?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H +$unwind$?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H DD 0117331cH DD 070100033H DD 0500fH @@ -371,6 +391,16 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 0162H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -382,7 +412,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB '%', 02H + DB '-', 02H DB 02H DB 09eH DB 00H @@ -401,7 +431,7 @@ $cppxdata$?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H +$unwind$?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H DD 0117331cH DD 070100033H DD 0500fH @@ -430,35 +460,40 @@ CONST SEGMENT CONST 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 025063501H +$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 025063501H +$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 035053401H +$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 035052a01H +$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 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -503,90 +538,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -596,7 +579,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 4 @@ -621,125 +604,125 @@ $LN6: 00010 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 62 00 00 00 mov ecx, 98 ; 00000062H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 a8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 26 00 00 00 mov ecx, 38 ; 00000026H + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 40 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 29 : UCHAR RawData[] = { 0x80, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 04 80 mov BYTE PTR RawData$[rbp], 128 ; 00000080H - 00054 c6 45 05 25 mov BYTE PTR RawData$[rbp+1], 37 ; 00000025H - 00058 c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005c c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 + 00052 c6 45 04 80 mov BYTE PTR RawData$[rbp], 128 ; 00000080H + 00056 c6 45 05 25 mov BYTE PTR RawData$[rbp+1], 37 ; 00000025H + 0005a c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005e c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 ; 30 : ; 31 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 0006c b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00071 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00076 48 89 85 28 01 + 0006e b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00073 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00078 48 89 85 28 01 00 00 mov QWORD PTR $T5[rbp], rax - 0007d 48 83 bd 28 01 + 0007f 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00085 74 2c je SHORT $LN3@JitEmitRip - 00087 c7 44 24 20 00 + 00087 74 2c je SHORT $LN3@JitEmitRip + 00089 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0008f 41 b9 07 00 00 + 00091 41 b9 07 00 00 00 mov r9d, 7 - 00095 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] - 00099 ba 0c 00 00 00 mov edx, 12 - 0009e 48 8b 8d 28 01 + 00097 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] + 0009b ba 0c 00 00 00 mov edx, 12 + 000a0 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000a5 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000aa 48 89 85 38 01 + 000a7 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000ac 48 89 85 38 01 00 00 mov QWORD PTR tv79[rbp], rax - 000b1 eb 0b jmp SHORT $LN4@JitEmitRip + 000b3 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000b3 48 c7 85 38 01 + 000b5 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000be 48 8b 85 38 01 + 000c0 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000c5 48 89 85 08 01 + 000c7 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000cc 48 8b 85 08 01 + 000ce 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000d3 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000d5 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 32 : *(PINT32)&Link->RawData[2] = RipDelta; - 000d7 b8 01 00 00 00 mov eax, 1 - 000dc 48 6b c0 02 imul rax, rax, 2 - 000e0 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000e4 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000e8 8b 95 78 01 00 + 000d9 b8 01 00 00 00 mov eax, 1 + 000de 48 6b c0 02 imul rax, rax, 2 + 000e2 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000e6 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000ea 8b 95 78 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000ee 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f0 89 14 08 mov DWORD PTR [rax+rcx], edx ; 33 : *(PUCHAR)&Link->RawData[6] = (UCHAR)Value; - 000f1 b8 01 00 00 00 mov eax, 1 - 000f6 48 6b c0 06 imul rax, rax, 6 - 000fa 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000fe 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00102 0f b6 95 80 01 + 000f3 b8 01 00 00 00 mov eax, 1 + 000f8 48 6b c0 06 imul rax, rax, 6 + 000fc 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00100 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00104 0f b6 95 80 01 00 00 movzx edx, BYTE PTR Value$[rbp] - 00109 88 14 08 mov BYTE PTR [rax+rcx], dl + 0010b 88 14 08 mov BYTE PTR [rax+rcx], dl ; 34 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 0010c 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] - 00110 48 83 c0 30 add rax, 48 ; 00000030H - 00114 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 00118 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 0011c 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 00120 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 00124 48 8b c8 mov rcx, rax - 00127 e8 00 00 00 00 call xed_decode + 0010e 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 00112 48 83 c0 30 add rax, 48 ; 00000030H + 00116 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 0011a 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 0011e 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00122 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00126 48 8b c8 mov rcx, rax + 00129 e8 00 00 00 00 call xed_decode ; 35 : NcAppendToBlock(Block, Link); - 0012c 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 00130 48 8b 8d 70 01 + 0012e 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 00132 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00137 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00139 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 36 : return TRUE; - 0013c b8 01 00 00 00 mov eax, 1 + 0013e b8 01 00 00 00 mov eax, 1 ; 37 : } - 00141 8b f8 mov edi, eax - 00143 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00147 48 8d 15 00 00 + 00143 8b f8 mov edi, eax + 00145 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00149 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 0014e e8 00 00 00 00 call _RTC_CheckStackVars - 00153 8b c7 mov eax, edi - 00155 48 8b 8d 40 01 + 00150 e8 00 00 00 00 call _RTC_CheckStackVars + 00155 8b c7 mov eax, edi + 00157 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0015c 48 33 cd xor rcx, rbp - 0015f e8 00 00 00 00 call __security_check_cookie - 00164 48 8d a5 58 01 + 0015e 48 33 cd xor rcx, rbp + 00161 e8 00 00 00 00 call __security_check_cookie + 00166 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 0016b 5f pop rdi - 0016c 5d pop rbp - 0016d c3 ret 0 + 0016d 5f pop rdi + 0016e 5d pop rbp + 0016f c3 ret 0 ?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeAndB _TEXT ENDS ; COMDAT text$x @@ -800,7 +783,7 @@ Value$ = 384 ?dtor$0@?0??JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeAndB'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -825,127 +808,127 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 b8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 50 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 17 : UCHAR RawData[] = { 0x66, 0x83, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H - 00054 c6 45 09 83 mov BYTE PTR RawData$[rbp+1], 131 ; 00000083H - 00058 c6 45 0a 25 mov BYTE PTR RawData$[rbp+2], 37 ; 00000025H - 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00052 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H + 00056 c6 45 09 83 mov BYTE PTR RawData$[rbp+1], 131 ; 00000083H + 0005a c6 45 0a 25 mov BYTE PTR RawData$[rbp+2], 37 ; 00000025H + 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 ; 18 : ; 19 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 00074 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00079 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 0007e 48 89 85 38 01 + 00076 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0007b e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00080 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 00085 48 83 bd 38 01 + 00087 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0008d 74 2c je SHORT $LN3@JitEmitRip - 0008f c7 44 24 20 00 + 0008f 74 2c je SHORT $LN3@JitEmitRip + 00091 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00097 41 b9 09 00 00 + 00099 41 b9 09 00 00 00 mov r9d, 9 - 0009d 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a1 ba 0c 00 00 00 mov edx, 12 - 000a6 48 8b 8d 38 01 + 0009f 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a3 ba 0c 00 00 00 mov edx, 12 + 000a8 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000ad e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b2 48 89 85 48 01 + 000af e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b4 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000b9 eb 0b jmp SHORT $LN4@JitEmitRip + 000bb eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bb 48 c7 85 48 01 + 000bd 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c6 48 8b 85 48 01 + 000c8 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000cd 48 89 85 18 01 + 000cf 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d4 48 8b 85 18 01 + 000d6 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000db 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000dd 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 20 : *(PINT32)&Link->RawData[3] = RipDelta; - 000df b8 01 00 00 00 mov eax, 1 - 000e4 48 6b c0 03 imul rax, rax, 3 - 000e8 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000ec 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f0 8b 95 88 01 00 + 000e1 b8 01 00 00 00 mov eax, 1 + 000e6 48 6b c0 03 imul rax, rax, 3 + 000ea 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000ee 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f2 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f6 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f8 89 14 08 mov DWORD PTR [rax+rcx], edx ; 21 : *(PUSHORT)&Link->RawData[7] = (USHORT)Value; - 000f9 b8 01 00 00 00 mov eax, 1 - 000fe 48 6b c0 07 imul rax, rax, 7 - 00102 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00106 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 0010a 0f b7 95 90 01 + 000fb b8 01 00 00 00 mov eax, 1 + 00100 48 6b c0 07 imul rax, rax, 7 + 00104 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00108 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 0010c 0f b7 95 90 01 00 00 movzx edx, WORD PTR Value$[rbp] - 00111 66 89 14 08 mov WORD PTR [rax+rcx], dx + 00113 66 89 14 08 mov WORD PTR [rax+rcx], dx ; 22 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 00115 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 00119 48 83 c0 30 add rax, 48 ; 00000030H - 0011d 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00121 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00125 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00129 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 0012d 48 8b c8 mov rcx, rax - 00130 e8 00 00 00 00 call xed_decode + 00117 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 0011b 48 83 c0 30 add rax, 48 ; 00000030H + 0011f 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00123 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00127 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0012b 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 0012f 48 8b c8 mov rcx, rax + 00132 e8 00 00 00 00 call xed_decode ; 23 : NcAppendToBlock(Block, Link); - 00135 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 00139 48 8b 8d 80 01 + 00137 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 0013b 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00140 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00142 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 24 : return TRUE; - 00145 b8 01 00 00 00 mov eax, 1 + 00147 b8 01 00 00 00 mov eax, 1 ; 25 : } - 0014a 8b f8 mov edi, eax - 0014c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00150 48 8d 15 00 00 + 0014c 8b f8 mov edi, eax + 0014e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00152 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 00157 e8 00 00 00 00 call _RTC_CheckStackVars - 0015c 8b c7 mov eax, edi - 0015e 48 8b 8d 50 01 + 00159 e8 00 00 00 00 call _RTC_CheckStackVars + 0015e 8b c7 mov eax, edi + 00160 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00165 48 33 cd xor rcx, rbp - 00168 e8 00 00 00 00 call __security_check_cookie - 0016d 48 8d a5 68 01 + 00167 48 33 cd xor rcx, rbp + 0016a e8 00 00 00 00 call __security_check_cookie + 0016f 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00174 5f pop rdi - 00175 5d pop rbp - 00176 c3 ret 0 + 00176 5f pop rdi + 00177 5d pop rbp + 00178 c3 ret 0 ?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeAndW _TEXT ENDS ; COMDAT text$x @@ -1006,7 +989,7 @@ Value$ = 400 ?dtor$0@?0??JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeAndW'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -1031,128 +1014,128 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 b8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 50 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : UCHAR RawData[] = { 0x81, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 08 81 mov BYTE PTR RawData$[rbp], 129 ; 00000081H - 00054 c6 45 09 25 mov BYTE PTR RawData$[rbp+1], 37 ; 00000025H - 00058 c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 - 00074 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 + 00052 c6 45 08 81 mov BYTE PTR RawData$[rbp], 129 ; 00000081H + 00056 c6 45 09 25 mov BYTE PTR RawData$[rbp+1], 37 ; 00000025H + 0005a c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00076 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 ; 6 : ; 7 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 00078 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0007d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00082 48 89 85 38 01 + 0007a b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0007f e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00084 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 00089 48 83 bd 38 01 + 0008b 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00091 74 2c je SHORT $LN3@JitEmitRip - 00093 c7 44 24 20 00 + 00093 74 2c je SHORT $LN3@JitEmitRip + 00095 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0009b 41 b9 0a 00 00 + 0009d 41 b9 0a 00 00 00 mov r9d, 10 - 000a1 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a5 ba 0c 00 00 00 mov edx, 12 - 000aa 48 8b 8d 38 01 + 000a3 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a7 ba 0c 00 00 00 mov edx, 12 + 000ac 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000b1 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b6 48 89 85 48 01 + 000b3 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b8 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000bd eb 0b jmp SHORT $LN4@JitEmitRip + 000bf eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bf 48 c7 85 48 01 + 000c1 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000ca 48 8b 85 48 01 + 000cc 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000d1 48 89 85 18 01 + 000d3 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d8 48 8b 85 18 01 + 000da 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000df 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000e1 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 8 : *(PINT32)&Link->RawData[2] = RipDelta; - 000e3 b8 01 00 00 00 mov eax, 1 - 000e8 48 6b c0 02 imul rax, rax, 2 - 000ec 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000f0 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f4 8b 95 88 01 00 + 000e5 b8 01 00 00 00 mov eax, 1 + 000ea 48 6b c0 02 imul rax, rax, 2 + 000ee 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000f2 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f6 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000fa 89 14 08 mov DWORD PTR [rax+rcx], edx + 000fc 89 14 08 mov DWORD PTR [rax+rcx], edx ; 9 : *(PULONG)&Link->RawData[6] = Value; - 000fd b8 01 00 00 00 mov eax, 1 - 00102 48 6b c0 06 imul rax, rax, 6 - 00106 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0010a 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 0010e 8b 95 90 01 00 + 000ff b8 01 00 00 00 mov eax, 1 + 00104 48 6b c0 06 imul rax, rax, 6 + 00108 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0010c 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00110 8b 95 90 01 00 00 mov edx, DWORD PTR Value$[rbp] - 00114 89 14 08 mov DWORD PTR [rax+rcx], edx + 00116 89 14 08 mov DWORD PTR [rax+rcx], edx ; 10 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 00117 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 0011b 48 83 c0 30 add rax, 48 ; 00000030H - 0011f 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00123 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00127 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0012b 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 0012f 48 8b c8 mov rcx, rax - 00132 e8 00 00 00 00 call xed_decode + 00119 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 0011d 48 83 c0 30 add rax, 48 ; 00000030H + 00121 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00125 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00129 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0012d 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00131 48 8b c8 mov rcx, rax + 00134 e8 00 00 00 00 call xed_decode ; 11 : NcAppendToBlock(Block, Link); - 00137 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 0013b 48 8b 8d 80 01 + 00139 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 0013d 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00142 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00144 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 12 : return TRUE; - 00147 b8 01 00 00 00 mov eax, 1 + 00149 b8 01 00 00 00 mov eax, 1 ; 13 : } - 0014c 8b f8 mov edi, eax - 0014e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00152 48 8d 15 00 00 + 0014e 8b f8 mov edi, eax + 00150 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00154 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 00159 e8 00 00 00 00 call _RTC_CheckStackVars - 0015e 8b c7 mov eax, edi - 00160 48 8b 8d 50 01 + 0015b e8 00 00 00 00 call _RTC_CheckStackVars + 00160 8b c7 mov eax, edi + 00162 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00167 48 33 cd xor rcx, rbp - 0016a e8 00 00 00 00 call __security_check_cookie - 0016f 48 8d a5 68 01 + 00169 48 33 cd xor rcx, rbp + 0016c e8 00 00 00 00 call __security_check_cookie + 00171 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00176 5f pop rdi - 00177 5d pop rbp - 00178 c3 ret 0 + 00178 5f pop rdi + 00179 5d pop rbp + 0017a c3 ret 0 ?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeAndD _TEXT ENDS ; COMDAT text$x @@ -1213,7 +1196,7 @@ Value$ = 400 ?dtor$0@?0??JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeAndD'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -1224,7 +1207,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -1236,147 +1219,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -1387,7 +1364,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -1399,147 +1376,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; 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 @@ -1550,7 +1521,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1561,104 +1532,98 @@ $LN7: 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 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 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] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 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 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 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 - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 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: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 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] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 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] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; 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 @@ -1675,79 +1640,73 @@ $LN4: 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 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 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 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 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 - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_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); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 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] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 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.27.29110\include\xlocale +; 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 @@ -1766,7 +1725,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 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 @@ -1777,251 +1736,251 @@ $LN12: 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 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 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] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 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] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 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 -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 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 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 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] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 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] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 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] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 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 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 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 - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 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 -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 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] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 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 - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 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] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 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] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 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] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 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 - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 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] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 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] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -2044,40 +2003,34 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 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] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2094,25 +2047,18 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2127,25 +2073,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -2160,25 +2099,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -2191,21 +2123,14 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 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 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/RipMovInst.cod b/CodeVirtualizer/x64/Debug/RipMovInst.cod index a642d15..5e96e34 100644 --- a/CodeVirtualizer/x64/Debug/RipMovInst.cod +++ b/CodeVirtualizer/x64/Debug/RipMovInst.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@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 @@ -33,55 +33,56 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon 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 -__886F7F70_xloctime DB 01H -__3DD0E9E9_xed-util@h DB 01H -__209FD46F_xed-iform-map@h DB 01H -__4E05E119_xed-inst@h DB 01H -__0607FC5A_xed-flags@h DB 01H -__B4910D57_xed-operand-accessors@h DB 01H -__8663E876_xed-state@h DB 01H -__BB5B4FF8_xed-encode@h DB 01H -__21860875_xed-encoder-hl@h DB 01H -__F7815311_xed-decoded-inst-api@h DB 01H -__9DFA3906_RipMovInst@cpp DB 01H -__7EA464AF_istream DB 01H -__1D745195_ostream DB 01H -__6FFBAAB7_streambuf DB 01H -__528871F3_iterator DB 01H -__3E6EDFAA_iosfwd DB 01H -__CF1C1A3F_utility DB 01H -__38038D2D_xstddef DB 01H -__EE19A480_xatomic@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 +__2A62C71C_RipMovInst@cpp 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 @@ -97,9 +98,9 @@ PUBLIC ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipR PUBLIC ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovW PUBLIC ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovB PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `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@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +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 @@ -122,7 +123,6 @@ 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 @@ -130,67 +130,67 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + 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+70 + 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+70 + 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+75 + 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+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + 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+165 + 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+223 + 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+379 + 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+379 + 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$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD imagerel $LN6 - DD imagerel $LN6+389 + DD imagerel $LN6+391 DD imagerel $unwind$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z pdata ENDS ; COMDAT pdata @@ -202,7 +202,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD imagerel $LN6 - DD imagerel $LN6+385 + DD imagerel $LN6+387 DD imagerel $unwind$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z pdata ENDS ; COMDAT pdata @@ -214,7 +214,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD imagerel $LN6 - DD imagerel $LN6+369 + DD imagerel $LN6+371 DD imagerel $unwind$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z pdata ENDS ; COMDAT pdata @@ -241,22 +241,32 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_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.27.29110\include\xlocnum', 00H ; `string' + 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@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@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.27.29110\include\xlocale', 00H ; `string' +??_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 voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 015aH +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA DD 031001H @@ -268,7 +278,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 06H DB 00H DB 00H - DB 0faH + DB 0feH DB 02H DB 09eH DB 00H @@ -287,7 +297,7 @@ $cppxdata$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 035054419H +$unwind$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 035054619H DD 0117331cH DD 070100031H DD 0500fH @@ -314,6 +324,16 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 016aH +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA DD 031001H @@ -325,7 +345,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 06H DB 00H DB 00H - DB 015H, 02H + DB 01dH, 02H DB 02H DB 09eH DB 00H @@ -344,7 +364,7 @@ $cppxdata$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 035054419H +$unwind$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 035054619H DD 0117331cH DD 070100033H DD 0500fH @@ -371,6 +391,16 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 016eH +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA DD 031001H @@ -382,7 +412,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 06H DB 00H DB 00H - DB '%', 02H + DB '-', 02H DB 02H DB 09eH DB 00H @@ -401,7 +431,7 @@ $cppxdata$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 035054419H +$unwind$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 035054619H DD 0117331cH DD 070100033H DD 0500fH @@ -430,35 +460,40 @@ CONST SEGMENT CONST 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 025063501H +$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 025063501H +$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 035053401H +$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 035052a01H +$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 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -503,90 +538,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -596,7 +579,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z _TEXT SEGMENT RawData$ = 4 @@ -621,126 +604,126 @@ $LN6: 00010 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 62 00 00 00 mov ecx, 98 ; 00000062H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 a8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 26 00 00 00 mov ecx, 38 ; 00000026H + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 40 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 29 : UCHAR RawData[] = { 0xC6, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 04 c6 mov BYTE PTR RawData$[rbp], 198 ; 000000c6H - 00054 c6 45 05 05 mov BYTE PTR RawData$[rbp+1], 5 - 00058 c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005c c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 + 00052 c6 45 04 c6 mov BYTE PTR RawData$[rbp], 198 ; 000000c6H + 00056 c6 45 05 05 mov BYTE PTR RawData$[rbp+1], 5 + 0005a c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005e c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 ; 30 : ; 31 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 0006c b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00071 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00076 48 89 85 28 01 + 0006e b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00073 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00078 48 89 85 28 01 00 00 mov QWORD PTR $T5[rbp], rax - 0007d 48 83 bd 28 01 + 0007f 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00085 74 2c je SHORT $LN3@JitEmitRip - 00087 c7 44 24 20 00 + 00087 74 2c je SHORT $LN3@JitEmitRip + 00089 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0008f 41 b9 07 00 00 + 00091 41 b9 07 00 00 00 mov r9d, 7 - 00095 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] - 00099 ba 0c 00 00 00 mov edx, 12 - 0009e 48 8b 8d 28 01 + 00097 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] + 0009b ba 0c 00 00 00 mov edx, 12 + 000a0 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000a5 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000aa 48 89 85 38 01 + 000a7 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000ac 48 89 85 38 01 00 00 mov QWORD PTR tv79[rbp], rax - 000b1 eb 0b jmp SHORT $LN4@JitEmitRip + 000b3 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000b3 48 c7 85 38 01 + 000b5 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000be 48 8b 85 38 01 + 000c0 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000c5 48 89 85 08 01 + 000c7 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000cc 48 8b 85 08 01 + 000ce 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000d3 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000d5 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 32 : *(PINT32)&Link->RawData[2] = RipDelta; - 000d7 b8 01 00 00 00 mov eax, 1 - 000dc 48 6b c0 02 imul rax, rax, 2 - 000e0 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000e4 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000e8 8b 95 78 01 00 + 000d9 b8 01 00 00 00 mov eax, 1 + 000de 48 6b c0 02 imul rax, rax, 2 + 000e2 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000e6 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000ea 8b 95 78 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000ee 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f0 89 14 08 mov DWORD PTR [rax+rcx], edx ; 33 : Link->RawData[6] = *Data; - 000f1 b8 01 00 00 00 mov eax, 1 - 000f6 48 6b c0 06 imul rax, rax, 6 - 000fa 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000fe 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00102 48 8b 95 80 01 + 000f3 b8 01 00 00 00 mov eax, 1 + 000f8 48 6b c0 06 imul rax, rax, 6 + 000fc 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00100 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00104 48 8b 95 80 01 00 00 mov rdx, QWORD PTR Data$[rbp] - 00109 0f b6 12 movzx edx, BYTE PTR [rdx] - 0010c 88 14 08 mov BYTE PTR [rax+rcx], dl + 0010b 0f b6 12 movzx edx, BYTE PTR [rdx] + 0010e 88 14 08 mov BYTE PTR [rax+rcx], dl ; 34 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 0010f 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] - 00113 48 83 c0 30 add rax, 48 ; 00000030H - 00117 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 0011b 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 0011f 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 00123 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 00127 48 8b c8 mov rcx, rax - 0012a e8 00 00 00 00 call xed_decode + 00111 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 00115 48 83 c0 30 add rax, 48 ; 00000030H + 00119 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 0011d 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00121 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00125 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00129 48 8b c8 mov rcx, rax + 0012c e8 00 00 00 00 call xed_decode ; 35 : NcAppendToBlock(Block, Link); - 0012f 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 00133 48 8b 8d 70 01 + 00131 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 00135 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 0013a e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 0013c e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 36 : return TRUE; - 0013f b8 01 00 00 00 mov eax, 1 + 00141 b8 01 00 00 00 mov eax, 1 ; 37 : } - 00144 8b f8 mov edi, eax - 00146 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 0014a 48 8d 15 00 00 + 00146 8b f8 mov edi, eax + 00148 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 0014c 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcFrameData - 00151 e8 00 00 00 00 call _RTC_CheckStackVars - 00156 8b c7 mov eax, edi - 00158 48 8b 8d 40 01 + 00153 e8 00 00 00 00 call _RTC_CheckStackVars + 00158 8b c7 mov eax, edi + 0015a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0015f 48 33 cd xor rcx, rbp - 00162 e8 00 00 00 00 call __security_check_cookie - 00167 48 8d a5 58 01 + 00161 48 33 cd xor rcx, rbp + 00164 e8 00 00 00 00 call __security_check_cookie + 00169 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 0016e 5f pop rdi - 0016f 5d pop rbp - 00170 c3 ret 0 + 00170 5f pop rdi + 00171 5d pop rbp + 00172 c3 ret 0 ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ENDP ; JitEmitRipRelativeMovB _TEXT ENDS ; COMDAT text$x @@ -801,7 +784,7 @@ Data$ = 384 ?dtor$0@?0??JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA ENDP ; `JitEmitRipRelativeMovB'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z _TEXT SEGMENT RawData$ = 8 @@ -826,130 +809,130 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 b8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 50 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 17 : UCHAR RawData[] = { 0x66, 0xC7, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H - 00054 c6 45 09 c7 mov BYTE PTR RawData$[rbp+1], 199 ; 000000c7H - 00058 c6 45 0a 05 mov BYTE PTR RawData$[rbp+2], 5 - 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00052 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H + 00056 c6 45 09 c7 mov BYTE PTR RawData$[rbp+1], 199 ; 000000c7H + 0005a c6 45 0a 05 mov BYTE PTR RawData$[rbp+2], 5 + 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 ; 18 : ; 19 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 00074 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00079 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 0007e 48 89 85 38 01 + 00076 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0007b e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00080 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 00085 48 83 bd 38 01 + 00087 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0008d 74 2c je SHORT $LN3@JitEmitRip - 0008f c7 44 24 20 00 + 0008f 74 2c je SHORT $LN3@JitEmitRip + 00091 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00097 41 b9 09 00 00 + 00099 41 b9 09 00 00 00 mov r9d, 9 - 0009d 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a1 ba 0c 00 00 00 mov edx, 12 - 000a6 48 8b 8d 38 01 + 0009f 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a3 ba 0c 00 00 00 mov edx, 12 + 000a8 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000ad e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b2 48 89 85 48 01 + 000af e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b4 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000b9 eb 0b jmp SHORT $LN4@JitEmitRip + 000bb eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bb 48 c7 85 48 01 + 000bd 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c6 48 8b 85 48 01 + 000c8 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000cd 48 89 85 18 01 + 000cf 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d4 48 8b 85 18 01 + 000d6 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000db 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000dd 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 20 : *(PINT32)&Link->RawData[3] = RipDelta; - 000df b8 01 00 00 00 mov eax, 1 - 000e4 48 6b c0 03 imul rax, rax, 3 - 000e8 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000ec 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f0 8b 95 88 01 00 + 000e1 b8 01 00 00 00 mov eax, 1 + 000e6 48 6b c0 03 imul rax, rax, 3 + 000ea 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000ee 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f2 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f6 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f8 89 14 08 mov DWORD PTR [rax+rcx], edx ; 21 : RtlCopyMemory(&Link->RawData[7], Data, 2); - 000f9 b8 01 00 00 00 mov eax, 1 - 000fe 48 6b c0 07 imul rax, rax, 7 - 00102 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00106 48 03 41 20 add rax, QWORD PTR [rcx+32] - 0010a 41 b8 02 00 00 + 000fb b8 01 00 00 00 mov eax, 1 + 00100 48 6b c0 07 imul rax, rax, 7 + 00104 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00108 48 03 41 20 add rax, QWORD PTR [rcx+32] + 0010c 41 b8 02 00 00 00 mov r8d, 2 - 00110 48 8b 95 90 01 + 00112 48 8b 95 90 01 00 00 mov rdx, QWORD PTR Data$[rbp] - 00117 48 8b c8 mov rcx, rax - 0011a e8 00 00 00 00 call memcpy + 00119 48 8b c8 mov rcx, rax + 0011c e8 00 00 00 00 call memcpy ; 22 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 0011f 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 00123 48 83 c0 30 add rax, 48 ; 00000030H - 00127 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0012b 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 0012f 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00133 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 00137 48 8b c8 mov rcx, rax - 0013a e8 00 00 00 00 call xed_decode + 00121 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 00125 48 83 c0 30 add rax, 48 ; 00000030H + 00129 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0012d 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00131 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00135 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00139 48 8b c8 mov rcx, rax + 0013c e8 00 00 00 00 call xed_decode ; 23 : NcAppendToBlock(Block, Link); - 0013f 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 00143 48 8b 8d 80 01 + 00141 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 00145 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 0014a e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 0014c e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 24 : return TRUE; - 0014f b8 01 00 00 00 mov eax, 1 + 00151 b8 01 00 00 00 mov eax, 1 ; 25 : } - 00154 8b f8 mov edi, eax - 00156 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 0015a 48 8d 15 00 00 + 00156 8b f8 mov edi, eax + 00158 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 0015c 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcFrameData - 00161 e8 00 00 00 00 call _RTC_CheckStackVars - 00166 8b c7 mov eax, edi - 00168 48 8b 8d 50 01 + 00163 e8 00 00 00 00 call _RTC_CheckStackVars + 00168 8b c7 mov eax, edi + 0016a 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0016f 48 33 cd xor rcx, rbp - 00172 e8 00 00 00 00 call __security_check_cookie - 00177 48 8d a5 68 01 + 00171 48 33 cd xor rcx, rbp + 00174 e8 00 00 00 00 call __security_check_cookie + 00179 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 0017e 5f pop rdi - 0017f 5d pop rbp - 00180 c3 ret 0 + 00180 5f pop rdi + 00181 5d pop rbp + 00182 c3 ret 0 ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ENDP ; JitEmitRipRelativeMovW _TEXT ENDS ; COMDAT text$x @@ -1010,7 +993,7 @@ Data$ = 400 ?dtor$0@?0??JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA ENDP ; `JitEmitRipRelativeMovW'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z _TEXT SEGMENT RawData$ = 8 @@ -1035,131 +1018,131 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 b8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 50 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : UCHAR RawData[] = { 0xC7, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 08 c7 mov BYTE PTR RawData$[rbp], 199 ; 000000c7H - 00054 c6 45 09 05 mov BYTE PTR RawData$[rbp+1], 5 - 00058 c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 - 00074 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 + 00052 c6 45 08 c7 mov BYTE PTR RawData$[rbp], 199 ; 000000c7H + 00056 c6 45 09 05 mov BYTE PTR RawData$[rbp+1], 5 + 0005a c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00076 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 ; 6 : ; 7 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 00078 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0007d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00082 48 89 85 38 01 + 0007a b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0007f e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00084 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 00089 48 83 bd 38 01 + 0008b 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00091 74 2c je SHORT $LN3@JitEmitRip - 00093 c7 44 24 20 00 + 00093 74 2c je SHORT $LN3@JitEmitRip + 00095 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0009b 41 b9 0a 00 00 + 0009d 41 b9 0a 00 00 00 mov r9d, 10 - 000a1 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a5 ba 0c 00 00 00 mov edx, 12 - 000aa 48 8b 8d 38 01 + 000a3 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a7 ba 0c 00 00 00 mov edx, 12 + 000ac 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000b1 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b6 48 89 85 48 01 + 000b3 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b8 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000bd eb 0b jmp SHORT $LN4@JitEmitRip + 000bf eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bf 48 c7 85 48 01 + 000c1 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000ca 48 8b 85 48 01 + 000cc 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000d1 48 89 85 18 01 + 000d3 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d8 48 8b 85 18 01 + 000da 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000df 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000e1 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 8 : *(PINT32)&Link->RawData[2] = RipDelta; - 000e3 b8 01 00 00 00 mov eax, 1 - 000e8 48 6b c0 02 imul rax, rax, 2 - 000ec 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000f0 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f4 8b 95 88 01 00 + 000e5 b8 01 00 00 00 mov eax, 1 + 000ea 48 6b c0 02 imul rax, rax, 2 + 000ee 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000f2 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f6 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000fa 89 14 08 mov DWORD PTR [rax+rcx], edx + 000fc 89 14 08 mov DWORD PTR [rax+rcx], edx ; 9 : RtlCopyMemory(&Link->RawData[6], Data, 4); - 000fd b8 01 00 00 00 mov eax, 1 - 00102 48 6b c0 06 imul rax, rax, 6 - 00106 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0010a 48 03 41 20 add rax, QWORD PTR [rcx+32] - 0010e 41 b8 04 00 00 + 000ff b8 01 00 00 00 mov eax, 1 + 00104 48 6b c0 06 imul rax, rax, 6 + 00108 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0010c 48 03 41 20 add rax, QWORD PTR [rcx+32] + 00110 41 b8 04 00 00 00 mov r8d, 4 - 00114 48 8b 95 90 01 + 00116 48 8b 95 90 01 00 00 mov rdx, QWORD PTR Data$[rbp] - 0011b 48 8b c8 mov rcx, rax - 0011e e8 00 00 00 00 call memcpy + 0011d 48 8b c8 mov rcx, rax + 00120 e8 00 00 00 00 call memcpy ; 10 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 00123 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 00127 48 83 c0 30 add rax, 48 ; 00000030H - 0012b 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0012f 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00133 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00137 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 0013b 48 8b c8 mov rcx, rax - 0013e e8 00 00 00 00 call xed_decode + 00125 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 00129 48 83 c0 30 add rax, 48 ; 00000030H + 0012d 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00131 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00135 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00139 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 0013d 48 8b c8 mov rcx, rax + 00140 e8 00 00 00 00 call xed_decode ; 11 : NcAppendToBlock(Block, Link); - 00143 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 00147 48 8b 8d 80 01 + 00145 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 00149 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 0014e e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00150 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 12 : return TRUE; - 00153 b8 01 00 00 00 mov eax, 1 + 00155 b8 01 00 00 00 mov eax, 1 ; 13 : } - 00158 8b f8 mov edi, eax - 0015a 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 0015e 48 8d 15 00 00 + 0015a 8b f8 mov edi, eax + 0015c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00160 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcFrameData - 00165 e8 00 00 00 00 call _RTC_CheckStackVars - 0016a 8b c7 mov eax, edi - 0016c 48 8b 8d 50 01 + 00167 e8 00 00 00 00 call _RTC_CheckStackVars + 0016c 8b c7 mov eax, edi + 0016e 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00173 48 33 cd xor rcx, rbp - 00176 e8 00 00 00 00 call __security_check_cookie - 0017b 48 8d a5 68 01 + 00175 48 33 cd xor rcx, rbp + 00178 e8 00 00 00 00 call __security_check_cookie + 0017d 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00182 5f pop rdi - 00183 5d pop rbp - 00184 c3 ret 0 + 00184 5f pop rdi + 00185 5d pop rbp + 00186 c3 ret 0 ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ENDP ; JitEmitRipRelativeMovD _TEXT ENDS ; COMDAT text$x @@ -1220,7 +1203,7 @@ Data$ = 400 ?dtor$0@?0??JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z@4HA ENDP ; `JitEmitRipRelativeMovD'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -1231,7 +1214,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -1243,147 +1226,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -1394,7 +1371,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -1406,147 +1383,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; 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 @@ -1557,7 +1528,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1568,104 +1539,98 @@ $LN7: 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 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 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] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 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 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 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 - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 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: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 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] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 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] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; 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 @@ -1682,79 +1647,73 @@ $LN4: 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 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 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 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 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 - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_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); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 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] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 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.27.29110\include\xlocale +; 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 @@ -1773,7 +1732,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 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 @@ -1784,251 +1743,251 @@ $LN12: 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 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 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] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 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] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 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 -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 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 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 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] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 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] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 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] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 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 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 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 - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 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 -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 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] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 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 - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 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] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 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] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 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] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 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 - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 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] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 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] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -2051,40 +2010,34 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 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] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2101,25 +2054,18 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2134,25 +2080,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -2167,25 +2106,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -2198,21 +2130,14 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 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 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/RipOrInst.cod b/CodeVirtualizer/x64/Debug/RipOrInst.cod index bc01b21..3a73c8e 100644 --- a/CodeVirtualizer/x64/Debug/RipOrInst.cod +++ b/CodeVirtualizer/x64/Debug/RipOrInst.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@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 @@ -33,55 +33,56 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon 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 -__886F7F70_xloctime DB 01H -__3DD0E9E9_xed-util@h DB 01H -__209FD46F_xed-iform-map@h DB 01H -__4E05E119_xed-inst@h DB 01H -__0607FC5A_xed-flags@h DB 01H -__B4910D57_xed-operand-accessors@h DB 01H -__8663E876_xed-state@h DB 01H -__BB5B4FF8_xed-encode@h DB 01H -__21860875_xed-encoder-hl@h DB 01H -__F7815311_xed-decoded-inst-api@h DB 01H -__97B6E7BF_RipOrInst@cpp DB 01H -__7EA464AF_istream DB 01H -__1D745195_ostream DB 01H -__6FFBAAB7_streambuf DB 01H -__528871F3_iterator DB 01H -__3E6EDFAA_iosfwd DB 01H -__CF1C1A3F_utility DB 01H -__38038D2D_xstddef DB 01H -__EE19A480_xatomic@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 +__B214C6C1_RipOrInst@cpp 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 @@ -97,9 +98,9 @@ PUBLIC ?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelat PUBLIC ?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrW PUBLIC ?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrB PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `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@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +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 @@ -122,7 +123,6 @@ 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 @@ -130,67 +130,67 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + 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+70 + 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+70 + 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+75 + 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+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + 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+165 + 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+223 + 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+379 + 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+379 + 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$?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+377 + DD imagerel $LN6+379 DD imagerel $unwind$?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -202,7 +202,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+375 + DD imagerel $LN6+377 DD imagerel $unwind$?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -214,7 +214,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+366 + DD imagerel $LN6+368 DD imagerel $unwind$?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -241,22 +241,32 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_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.27.29110\include\xlocnum', 00H ; `string' + 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@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@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.27.29110\include\xlocale', 00H ; `string' +??_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 voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 0157H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -268,7 +278,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 0faH + DB 0feH DB 02H DB 09eH DB 00H @@ -287,7 +297,7 @@ $cppxdata$?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H +$unwind$?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H DD 0117331cH DD 070100031H DD 0500fH @@ -314,6 +324,16 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 0160H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -325,7 +345,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 015H, 02H + DB 01dH, 02H DB 02H DB 09eH DB 00H @@ -344,7 +364,7 @@ $cppxdata$?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H +$unwind$?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H DD 0117331cH DD 070100033H DD 0500fH @@ -371,6 +391,16 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 0162H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -382,7 +412,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB '%', 02H + DB '-', 02H DB 02H DB 09eH DB 00H @@ -401,7 +431,7 @@ $cppxdata$?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H +$unwind$?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H DD 0117331cH DD 070100033H DD 0500fH @@ -430,35 +460,40 @@ CONST SEGMENT CONST 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 025063501H +$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 025063501H +$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 035053401H +$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 035052a01H +$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 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -503,90 +538,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -596,7 +579,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 4 @@ -621,125 +604,125 @@ $LN6: 00010 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 62 00 00 00 mov ecx, 98 ; 00000062H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 a8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 26 00 00 00 mov ecx, 38 ; 00000026H + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 40 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 29 : UCHAR RawData[] = { 0x80, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 04 80 mov BYTE PTR RawData$[rbp], 128 ; 00000080H - 00054 c6 45 05 0d mov BYTE PTR RawData$[rbp+1], 13 - 00058 c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005c c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 + 00052 c6 45 04 80 mov BYTE PTR RawData$[rbp], 128 ; 00000080H + 00056 c6 45 05 0d mov BYTE PTR RawData$[rbp+1], 13 + 0005a c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005e c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 ; 30 : ; 31 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 0006c b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00071 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00076 48 89 85 28 01 + 0006e b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00073 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00078 48 89 85 28 01 00 00 mov QWORD PTR $T5[rbp], rax - 0007d 48 83 bd 28 01 + 0007f 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00085 74 2c je SHORT $LN3@JitEmitRip - 00087 c7 44 24 20 00 + 00087 74 2c je SHORT $LN3@JitEmitRip + 00089 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0008f 41 b9 07 00 00 + 00091 41 b9 07 00 00 00 mov r9d, 7 - 00095 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] - 00099 ba 0c 00 00 00 mov edx, 12 - 0009e 48 8b 8d 28 01 + 00097 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] + 0009b ba 0c 00 00 00 mov edx, 12 + 000a0 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000a5 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000aa 48 89 85 38 01 + 000a7 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000ac 48 89 85 38 01 00 00 mov QWORD PTR tv79[rbp], rax - 000b1 eb 0b jmp SHORT $LN4@JitEmitRip + 000b3 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000b3 48 c7 85 38 01 + 000b5 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000be 48 8b 85 38 01 + 000c0 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000c5 48 89 85 08 01 + 000c7 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000cc 48 8b 85 08 01 + 000ce 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000d3 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000d5 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 32 : *(PINT32)&Link->RawData[2] = RipDelta; - 000d7 b8 01 00 00 00 mov eax, 1 - 000dc 48 6b c0 02 imul rax, rax, 2 - 000e0 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000e4 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000e8 8b 95 78 01 00 + 000d9 b8 01 00 00 00 mov eax, 1 + 000de 48 6b c0 02 imul rax, rax, 2 + 000e2 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000e6 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000ea 8b 95 78 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000ee 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f0 89 14 08 mov DWORD PTR [rax+rcx], edx ; 33 : *(PUCHAR)&Link->RawData[6] = (UCHAR)Value; - 000f1 b8 01 00 00 00 mov eax, 1 - 000f6 48 6b c0 06 imul rax, rax, 6 - 000fa 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000fe 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00102 0f b6 95 80 01 + 000f3 b8 01 00 00 00 mov eax, 1 + 000f8 48 6b c0 06 imul rax, rax, 6 + 000fc 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00100 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00104 0f b6 95 80 01 00 00 movzx edx, BYTE PTR Value$[rbp] - 00109 88 14 08 mov BYTE PTR [rax+rcx], dl + 0010b 88 14 08 mov BYTE PTR [rax+rcx], dl ; 34 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 0010c 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] - 00110 48 83 c0 30 add rax, 48 ; 00000030H - 00114 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 00118 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 0011c 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 00120 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 00124 48 8b c8 mov rcx, rax - 00127 e8 00 00 00 00 call xed_decode + 0010e 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 00112 48 83 c0 30 add rax, 48 ; 00000030H + 00116 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 0011a 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 0011e 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00122 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00126 48 8b c8 mov rcx, rax + 00129 e8 00 00 00 00 call xed_decode ; 35 : NcAppendToBlock(Block, Link); - 0012c 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 00130 48 8b 8d 70 01 + 0012e 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 00132 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00137 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00139 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 36 : return TRUE; - 0013c b8 01 00 00 00 mov eax, 1 + 0013e b8 01 00 00 00 mov eax, 1 ; 37 : } - 00141 8b f8 mov edi, eax - 00143 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00147 48 8d 15 00 00 + 00143 8b f8 mov edi, eax + 00145 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00149 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 0014e e8 00 00 00 00 call _RTC_CheckStackVars - 00153 8b c7 mov eax, edi - 00155 48 8b 8d 40 01 + 00150 e8 00 00 00 00 call _RTC_CheckStackVars + 00155 8b c7 mov eax, edi + 00157 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0015c 48 33 cd xor rcx, rbp - 0015f e8 00 00 00 00 call __security_check_cookie - 00164 48 8d a5 58 01 + 0015e 48 33 cd xor rcx, rbp + 00161 e8 00 00 00 00 call __security_check_cookie + 00166 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 0016b 5f pop rdi - 0016c 5d pop rbp - 0016d c3 ret 0 + 0016d 5f pop rdi + 0016e 5d pop rbp + 0016f c3 ret 0 ?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeOrB _TEXT ENDS ; COMDAT text$x @@ -800,7 +783,7 @@ Value$ = 384 ?dtor$0@?0??JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeOrB'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -825,127 +808,127 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 b8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 50 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 17 : UCHAR RawData[] = { 0x66, 0x83, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H - 00054 c6 45 09 83 mov BYTE PTR RawData$[rbp+1], 131 ; 00000083H - 00058 c6 45 0a 0d mov BYTE PTR RawData$[rbp+2], 13 - 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00052 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H + 00056 c6 45 09 83 mov BYTE PTR RawData$[rbp+1], 131 ; 00000083H + 0005a c6 45 0a 0d mov BYTE PTR RawData$[rbp+2], 13 + 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 ; 18 : ; 19 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 00074 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00079 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 0007e 48 89 85 38 01 + 00076 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0007b e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00080 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 00085 48 83 bd 38 01 + 00087 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0008d 74 2c je SHORT $LN3@JitEmitRip - 0008f c7 44 24 20 00 + 0008f 74 2c je SHORT $LN3@JitEmitRip + 00091 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00097 41 b9 09 00 00 + 00099 41 b9 09 00 00 00 mov r9d, 9 - 0009d 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a1 ba 0c 00 00 00 mov edx, 12 - 000a6 48 8b 8d 38 01 + 0009f 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a3 ba 0c 00 00 00 mov edx, 12 + 000a8 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000ad e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b2 48 89 85 48 01 + 000af e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b4 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000b9 eb 0b jmp SHORT $LN4@JitEmitRip + 000bb eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bb 48 c7 85 48 01 + 000bd 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c6 48 8b 85 48 01 + 000c8 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000cd 48 89 85 18 01 + 000cf 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d4 48 8b 85 18 01 + 000d6 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000db 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000dd 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 20 : *(PINT32)&Link->RawData[3] = RipDelta; - 000df b8 01 00 00 00 mov eax, 1 - 000e4 48 6b c0 03 imul rax, rax, 3 - 000e8 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000ec 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f0 8b 95 88 01 00 + 000e1 b8 01 00 00 00 mov eax, 1 + 000e6 48 6b c0 03 imul rax, rax, 3 + 000ea 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000ee 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f2 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f6 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f8 89 14 08 mov DWORD PTR [rax+rcx], edx ; 21 : *(PUSHORT)&Link->RawData[7] = (USHORT)Value; - 000f9 b8 01 00 00 00 mov eax, 1 - 000fe 48 6b c0 07 imul rax, rax, 7 - 00102 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00106 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 0010a 0f b7 95 90 01 + 000fb b8 01 00 00 00 mov eax, 1 + 00100 48 6b c0 07 imul rax, rax, 7 + 00104 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00108 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 0010c 0f b7 95 90 01 00 00 movzx edx, WORD PTR Value$[rbp] - 00111 66 89 14 08 mov WORD PTR [rax+rcx], dx + 00113 66 89 14 08 mov WORD PTR [rax+rcx], dx ; 22 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 00115 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 00119 48 83 c0 30 add rax, 48 ; 00000030H - 0011d 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00121 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00125 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00129 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 0012d 48 8b c8 mov rcx, rax - 00130 e8 00 00 00 00 call xed_decode + 00117 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 0011b 48 83 c0 30 add rax, 48 ; 00000030H + 0011f 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00123 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00127 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0012b 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 0012f 48 8b c8 mov rcx, rax + 00132 e8 00 00 00 00 call xed_decode ; 23 : NcAppendToBlock(Block, Link); - 00135 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 00139 48 8b 8d 80 01 + 00137 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 0013b 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00140 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00142 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 24 : return TRUE; - 00145 b8 01 00 00 00 mov eax, 1 + 00147 b8 01 00 00 00 mov eax, 1 ; 25 : } - 0014a 8b f8 mov edi, eax - 0014c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00150 48 8d 15 00 00 + 0014c 8b f8 mov edi, eax + 0014e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00152 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 00157 e8 00 00 00 00 call _RTC_CheckStackVars - 0015c 8b c7 mov eax, edi - 0015e 48 8b 8d 50 01 + 00159 e8 00 00 00 00 call _RTC_CheckStackVars + 0015e 8b c7 mov eax, edi + 00160 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00165 48 33 cd xor rcx, rbp - 00168 e8 00 00 00 00 call __security_check_cookie - 0016d 48 8d a5 68 01 + 00167 48 33 cd xor rcx, rbp + 0016a e8 00 00 00 00 call __security_check_cookie + 0016f 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00174 5f pop rdi - 00175 5d pop rbp - 00176 c3 ret 0 + 00176 5f pop rdi + 00177 5d pop rbp + 00178 c3 ret 0 ?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeOrW _TEXT ENDS ; COMDAT text$x @@ -1006,7 +989,7 @@ Value$ = 400 ?dtor$0@?0??JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeOrW'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -1031,128 +1014,128 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 b8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 50 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : UCHAR RawData[] = { 0x81, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 08 81 mov BYTE PTR RawData$[rbp], 129 ; 00000081H - 00054 c6 45 09 0d mov BYTE PTR RawData$[rbp+1], 13 - 00058 c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 - 00074 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 + 00052 c6 45 08 81 mov BYTE PTR RawData$[rbp], 129 ; 00000081H + 00056 c6 45 09 0d mov BYTE PTR RawData$[rbp+1], 13 + 0005a c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00076 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 ; 6 : ; 7 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 00078 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0007d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00082 48 89 85 38 01 + 0007a b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0007f e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00084 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 00089 48 83 bd 38 01 + 0008b 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00091 74 2c je SHORT $LN3@JitEmitRip - 00093 c7 44 24 20 00 + 00093 74 2c je SHORT $LN3@JitEmitRip + 00095 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0009b 41 b9 0a 00 00 + 0009d 41 b9 0a 00 00 00 mov r9d, 10 - 000a1 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a5 ba 0c 00 00 00 mov edx, 12 - 000aa 48 8b 8d 38 01 + 000a3 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a7 ba 0c 00 00 00 mov edx, 12 + 000ac 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000b1 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b6 48 89 85 48 01 + 000b3 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b8 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000bd eb 0b jmp SHORT $LN4@JitEmitRip + 000bf eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bf 48 c7 85 48 01 + 000c1 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000ca 48 8b 85 48 01 + 000cc 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000d1 48 89 85 18 01 + 000d3 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d8 48 8b 85 18 01 + 000da 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000df 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000e1 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 8 : *(PINT32)&Link->RawData[2] = RipDelta; - 000e3 b8 01 00 00 00 mov eax, 1 - 000e8 48 6b c0 02 imul rax, rax, 2 - 000ec 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000f0 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f4 8b 95 88 01 00 + 000e5 b8 01 00 00 00 mov eax, 1 + 000ea 48 6b c0 02 imul rax, rax, 2 + 000ee 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000f2 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f6 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000fa 89 14 08 mov DWORD PTR [rax+rcx], edx + 000fc 89 14 08 mov DWORD PTR [rax+rcx], edx ; 9 : *(PULONG)&Link->RawData[6] = Value; - 000fd b8 01 00 00 00 mov eax, 1 - 00102 48 6b c0 06 imul rax, rax, 6 - 00106 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0010a 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 0010e 8b 95 90 01 00 + 000ff b8 01 00 00 00 mov eax, 1 + 00104 48 6b c0 06 imul rax, rax, 6 + 00108 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0010c 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00110 8b 95 90 01 00 00 mov edx, DWORD PTR Value$[rbp] - 00114 89 14 08 mov DWORD PTR [rax+rcx], edx + 00116 89 14 08 mov DWORD PTR [rax+rcx], edx ; 10 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 00117 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 0011b 48 83 c0 30 add rax, 48 ; 00000030H - 0011f 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00123 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00127 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0012b 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 0012f 48 8b c8 mov rcx, rax - 00132 e8 00 00 00 00 call xed_decode + 00119 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 0011d 48 83 c0 30 add rax, 48 ; 00000030H + 00121 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00125 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00129 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0012d 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00131 48 8b c8 mov rcx, rax + 00134 e8 00 00 00 00 call xed_decode ; 11 : NcAppendToBlock(Block, Link); - 00137 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 0013b 48 8b 8d 80 01 + 00139 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 0013d 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00142 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00144 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 12 : return TRUE; - 00147 b8 01 00 00 00 mov eax, 1 + 00149 b8 01 00 00 00 mov eax, 1 ; 13 : } - 0014c 8b f8 mov edi, eax - 0014e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00152 48 8d 15 00 00 + 0014e 8b f8 mov edi, eax + 00150 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00154 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 00159 e8 00 00 00 00 call _RTC_CheckStackVars - 0015e 8b c7 mov eax, edi - 00160 48 8b 8d 50 01 + 0015b e8 00 00 00 00 call _RTC_CheckStackVars + 00160 8b c7 mov eax, edi + 00162 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00167 48 33 cd xor rcx, rbp - 0016a e8 00 00 00 00 call __security_check_cookie - 0016f 48 8d a5 68 01 + 00169 48 33 cd xor rcx, rbp + 0016c e8 00 00 00 00 call __security_check_cookie + 00171 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00176 5f pop rdi - 00177 5d pop rbp - 00178 c3 ret 0 + 00178 5f pop rdi + 00179 5d pop rbp + 0017a c3 ret 0 ?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeOrD _TEXT ENDS ; COMDAT text$x @@ -1213,7 +1196,7 @@ Value$ = 400 ?dtor$0@?0??JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeOrD'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -1224,7 +1207,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -1236,147 +1219,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -1387,7 +1364,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -1399,147 +1376,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; 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 @@ -1550,7 +1521,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1561,104 +1532,98 @@ $LN7: 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 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 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] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 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 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 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 - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 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: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 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] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 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] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; 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 @@ -1675,79 +1640,73 @@ $LN4: 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 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 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 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 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 - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_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); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 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] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 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.27.29110\include\xlocale +; 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 @@ -1766,7 +1725,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 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 @@ -1777,251 +1736,251 @@ $LN12: 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 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 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] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 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] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 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 -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 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 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 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] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 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] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 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] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 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 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 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 - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 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 -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 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] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 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 - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 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] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 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] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 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] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 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 - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 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] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 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] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -2044,40 +2003,34 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 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] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2094,25 +2047,18 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2127,25 +2073,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -2160,25 +2099,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -2191,21 +2123,14 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 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 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/RipXorInst.cod b/CodeVirtualizer/x64/Debug/RipXorInst.cod index 038ff51..49c9b4d 100644 --- a/CodeVirtualizer/x64/Debug/RipXorInst.cod +++ b/CodeVirtualizer/x64/Debug/RipXorInst.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@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 @@ -33,55 +33,56 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon 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 -__886F7F70_xloctime DB 01H -__3DD0E9E9_xed-util@h DB 01H -__209FD46F_xed-iform-map@h DB 01H -__4E05E119_xed-inst@h DB 01H -__0607FC5A_xed-flags@h DB 01H -__B4910D57_xed-operand-accessors@h DB 01H -__8663E876_xed-state@h DB 01H -__BB5B4FF8_xed-encode@h DB 01H -__21860875_xed-encoder-hl@h DB 01H -__F7815311_xed-decoded-inst-api@h DB 01H -__1FB70083_RipXorInst@cpp DB 01H -__7EA464AF_istream DB 01H -__1D745195_ostream DB 01H -__6FFBAAB7_streambuf DB 01H -__528871F3_iterator DB 01H -__3E6EDFAA_iosfwd DB 01H -__CF1C1A3F_utility DB 01H -__38038D2D_xstddef DB 01H -__EE19A480_xatomic@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 +__A82FFE99_RipXorInst@cpp 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 @@ -97,9 +98,9 @@ PUBLIC ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRela PUBLIC ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorW PUBLIC ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorB PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `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@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +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 @@ -122,7 +123,6 @@ 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 @@ -130,67 +130,67 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+65 + 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+70 + 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+70 + 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+75 + 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+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + 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+165 + 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+223 + 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+379 + 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+379 + 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$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+377 + DD imagerel $LN6+379 DD imagerel $unwind$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -202,7 +202,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+375 + DD imagerel $LN6+377 DD imagerel $unwind$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -214,7 +214,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+366 + DD imagerel $LN6+368 DD imagerel $unwind$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -241,22 +241,32 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_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.27.29110\include\xlocnum', 00H ; `string' + 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@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@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.27.29110\include\xlocale', 00H ; `string' +??_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 voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 0157H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -268,7 +278,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 0faH + DB 0feH DB 02H DB 09eH DB 00H @@ -287,7 +297,7 @@ $cppxdata$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H +$unwind$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H DD 0117331cH DD 070100031H DD 0500fH @@ -314,6 +324,16 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 0160H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -325,7 +345,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 015H, 02H + DB 01dH, 02H DB 02H DB 09eH DB 00H @@ -344,7 +364,7 @@ $cppxdata$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H +$unwind$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H DD 0117331cH DD 070100033H DD 0500fH @@ -371,6 +391,16 @@ CONST SEGMENT DD 00H DQ FLAT:?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcVarDesc CONST ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DB 00H + DB 05H +voltbl ENDS +; COMDAT voltbl +voltbl SEGMENT +_volmd DW 03fH + DW 0162H +voltbl ENDS ; COMDAT xdata xdata SEGMENT $unwind$?dtor$0@?0??JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA DD 031001H @@ -382,7 +412,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB '%', 02H + DB '-', 02H DB 02H DB 09eH DB 00H @@ -401,7 +431,7 @@ $cppxdata$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H +$unwind$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054619H DD 0117331cH DD 070100033H DD 0500fH @@ -430,35 +460,40 @@ CONST SEGMENT CONST 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 025063501H +$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 025063501H +$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 035053401H +$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 035052a01H +$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 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -503,90 +538,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -596,7 +579,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 4 @@ -621,125 +604,125 @@ $LN6: 00010 48 81 ec 88 01 00 00 sub rsp, 392 ; 00000188H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 62 00 00 00 mov ecx, 98 ; 00000062H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 a8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 26 00 00 00 mov ecx, 38 ; 00000026H + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 a8 01 00 00 mov rcx, QWORD PTR [rsp+424] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 40 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 29 : UCHAR RawData[] = { 0x80, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 04 80 mov BYTE PTR RawData$[rbp], 128 ; 00000080H - 00054 c6 45 05 35 mov BYTE PTR RawData$[rbp+1], 53 ; 00000035H - 00058 c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005c c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 + 00052 c6 45 04 80 mov BYTE PTR RawData$[rbp], 128 ; 00000080H + 00056 c6 45 05 35 mov BYTE PTR RawData$[rbp+1], 53 ; 00000035H + 0005a c6 45 06 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005e c6 45 07 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 08 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0 ; 30 : ; 31 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 0006c b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00071 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00076 48 89 85 28 01 + 0006e b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 00073 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00078 48 89 85 28 01 00 00 mov QWORD PTR $T5[rbp], rax - 0007d 48 83 bd 28 01 + 0007f 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00085 74 2c je SHORT $LN3@JitEmitRip - 00087 c7 44 24 20 00 + 00087 74 2c je SHORT $LN3@JitEmitRip + 00089 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0008f 41 b9 07 00 00 + 00091 41 b9 07 00 00 00 mov r9d, 7 - 00095 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] - 00099 ba 0c 00 00 00 mov edx, 12 - 0009e 48 8b 8d 28 01 + 00097 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] + 0009b ba 0c 00 00 00 mov edx, 12 + 000a0 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000a5 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000aa 48 89 85 38 01 + 000a7 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000ac 48 89 85 38 01 00 00 mov QWORD PTR tv79[rbp], rax - 000b1 eb 0b jmp SHORT $LN4@JitEmitRip + 000b3 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000b3 48 c7 85 38 01 + 000b5 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000be 48 8b 85 38 01 + 000c0 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000c5 48 89 85 08 01 + 000c7 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000cc 48 8b 85 08 01 + 000ce 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000d3 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000d5 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 32 : *(PINT32)&Link->RawData[2] = RipDelta; - 000d7 b8 01 00 00 00 mov eax, 1 - 000dc 48 6b c0 02 imul rax, rax, 2 - 000e0 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000e4 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000e8 8b 95 78 01 00 + 000d9 b8 01 00 00 00 mov eax, 1 + 000de 48 6b c0 02 imul rax, rax, 2 + 000e2 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 000e6 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000ea 8b 95 78 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000ee 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f0 89 14 08 mov DWORD PTR [rax+rcx], edx ; 33 : *(PUCHAR)&Link->RawData[6] = (UCHAR)Value; - 000f1 b8 01 00 00 00 mov eax, 1 - 000f6 48 6b c0 06 imul rax, rax, 6 - 000fa 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000fe 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 00102 0f b6 95 80 01 + 000f3 b8 01 00 00 00 mov eax, 1 + 000f8 48 6b c0 06 imul rax, rax, 6 + 000fc 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00100 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00104 0f b6 95 80 01 00 00 movzx edx, BYTE PTR Value$[rbp] - 00109 88 14 08 mov BYTE PTR [rax+rcx], dl + 0010b 88 14 08 mov BYTE PTR [rax+rcx], dl ; 34 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 0010c 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] - 00110 48 83 c0 30 add rax, 48 ; 00000030H - 00114 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 00118 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 0011c 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 00120 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 00124 48 8b c8 mov rcx, rax - 00127 e8 00 00 00 00 call xed_decode + 0010e 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 00112 48 83 c0 30 add rax, 48 ; 00000030H + 00116 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 0011a 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 0011e 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] + 00122 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00126 48 8b c8 mov rcx, rax + 00129 e8 00 00 00 00 call xed_decode ; 35 : NcAppendToBlock(Block, Link); - 0012c 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 00130 48 8b 8d 70 01 + 0012e 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 00132 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00137 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00139 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 36 : return TRUE; - 0013c b8 01 00 00 00 mov eax, 1 + 0013e b8 01 00 00 00 mov eax, 1 ; 37 : } - 00141 8b f8 mov edi, eax - 00143 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00147 48 8d 15 00 00 + 00143 8b f8 mov edi, eax + 00145 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00149 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 0014e e8 00 00 00 00 call _RTC_CheckStackVars - 00153 8b c7 mov eax, edi - 00155 48 8b 8d 40 01 + 00150 e8 00 00 00 00 call _RTC_CheckStackVars + 00155 8b c7 mov eax, edi + 00157 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0015c 48 33 cd xor rcx, rbp - 0015f e8 00 00 00 00 call __security_check_cookie - 00164 48 8d a5 58 01 + 0015e 48 33 cd xor rcx, rbp + 00161 e8 00 00 00 00 call __security_check_cookie + 00166 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 0016b 5f pop rdi - 0016c 5d pop rbp - 0016d c3 ret 0 + 0016d 5f pop rdi + 0016e 5d pop rbp + 0016f c3 ret 0 ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeXorB _TEXT ENDS ; COMDAT text$x @@ -800,7 +783,7 @@ Value$ = 384 ?dtor$0@?0??JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeXorB'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -825,127 +808,127 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 b8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 50 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 17 : UCHAR RawData[] = { 0x66, 0x81, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H - 00054 c6 45 09 81 mov BYTE PTR RawData$[rbp+1], 129 ; 00000081H - 00058 c6 45 0a 35 mov BYTE PTR RawData$[rbp+2], 53 ; 00000035H - 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00052 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H + 00056 c6 45 09 81 mov BYTE PTR RawData$[rbp+1], 129 ; 00000081H + 0005a c6 45 0a 35 mov BYTE PTR RawData$[rbp+2], 53 ; 00000035H + 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 ; 18 : ; 19 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 00074 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00079 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 0007e 48 89 85 38 01 + 00076 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0007b e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00080 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 00085 48 83 bd 38 01 + 00087 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0008d 74 2c je SHORT $LN3@JitEmitRip - 0008f c7 44 24 20 00 + 0008f 74 2c je SHORT $LN3@JitEmitRip + 00091 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00097 41 b9 09 00 00 + 00099 41 b9 09 00 00 00 mov r9d, 9 - 0009d 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a1 ba 0c 00 00 00 mov edx, 12 - 000a6 48 8b 8d 38 01 + 0009f 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a3 ba 0c 00 00 00 mov edx, 12 + 000a8 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000ad e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b2 48 89 85 48 01 + 000af e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b4 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000b9 eb 0b jmp SHORT $LN4@JitEmitRip + 000bb eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bb 48 c7 85 48 01 + 000bd 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c6 48 8b 85 48 01 + 000c8 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000cd 48 89 85 18 01 + 000cf 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d4 48 8b 85 18 01 + 000d6 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000db 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000dd 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 20 : *(PINT32)&Link->RawData[3] = RipDelta; - 000df b8 01 00 00 00 mov eax, 1 - 000e4 48 6b c0 03 imul rax, rax, 3 - 000e8 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000ec 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f0 8b 95 88 01 00 + 000e1 b8 01 00 00 00 mov eax, 1 + 000e6 48 6b c0 03 imul rax, rax, 3 + 000ea 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000ee 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f2 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f6 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f8 89 14 08 mov DWORD PTR [rax+rcx], edx ; 21 : *(PUSHORT)&Link->RawData[7] = (USHORT)Value; - 000f9 b8 01 00 00 00 mov eax, 1 - 000fe 48 6b c0 07 imul rax, rax, 7 - 00102 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00106 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 0010a 0f b7 95 90 01 + 000fb b8 01 00 00 00 mov eax, 1 + 00100 48 6b c0 07 imul rax, rax, 7 + 00104 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00108 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 0010c 0f b7 95 90 01 00 00 movzx edx, WORD PTR Value$[rbp] - 00111 66 89 14 08 mov WORD PTR [rax+rcx], dx + 00113 66 89 14 08 mov WORD PTR [rax+rcx], dx ; 22 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 00115 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 00119 48 83 c0 30 add rax, 48 ; 00000030H - 0011d 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00121 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00125 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00129 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 0012d 48 8b c8 mov rcx, rax - 00130 e8 00 00 00 00 call xed_decode + 00117 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 0011b 48 83 c0 30 add rax, 48 ; 00000030H + 0011f 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00123 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00127 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0012b 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 0012f 48 8b c8 mov rcx, rax + 00132 e8 00 00 00 00 call xed_decode ; 23 : NcAppendToBlock(Block, Link); - 00135 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 00139 48 8b 8d 80 01 + 00137 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 0013b 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00140 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00142 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 24 : return TRUE; - 00145 b8 01 00 00 00 mov eax, 1 + 00147 b8 01 00 00 00 mov eax, 1 ; 25 : } - 0014a 8b f8 mov edi, eax - 0014c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00150 48 8d 15 00 00 + 0014c 8b f8 mov edi, eax + 0014e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00152 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 00157 e8 00 00 00 00 call _RTC_CheckStackVars - 0015c 8b c7 mov eax, edi - 0015e 48 8b 8d 50 01 + 00159 e8 00 00 00 00 call _RTC_CheckStackVars + 0015e 8b c7 mov eax, edi + 00160 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00165 48 33 cd xor rcx, rbp - 00168 e8 00 00 00 00 call __security_check_cookie - 0016d 48 8d a5 68 01 + 00167 48 33 cd xor rcx, rbp + 0016a e8 00 00 00 00 call __security_check_cookie + 0016f 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00174 5f pop rdi - 00175 5d pop rbp - 00176 c3 ret 0 + 00176 5f pop rdi + 00177 5d pop rbp + 00178 c3 ret 0 ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeXorW _TEXT ENDS ; COMDAT text$x @@ -1006,7 +989,7 @@ Value$ = 400 ?dtor$0@?0??JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeXorW'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -1031,128 +1014,128 @@ $LN6: 00010 48 81 ec 98 01 00 00 sub rsp, 408 ; 00000198H 00017 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001c 48 8b fc mov rdi, rsp - 0001f b9 66 00 00 00 mov ecx, 102 ; 00000066H - 00024 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00029 f3 ab rep stosd - 0002b 48 8b 8c 24 b8 + 0001c 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] + 00021 b9 2a 00 00 00 mov ecx, 42 ; 0000002aH + 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002b f3 ab rep stosd + 0002d 48 8b 8c 24 b8 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00033 48 8b 05 00 00 + 00035 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003a 48 33 c5 xor rax, rbp - 0003d 48 89 85 50 01 + 0003c 48 33 c5 xor rax, rbp + 0003f 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00044 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp - 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00046 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp + 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : UCHAR RawData[] = { 0x81, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 00050 c6 45 08 81 mov BYTE PTR RawData$[rbp], 129 ; 00000081H - 00054 c6 45 09 35 mov BYTE PTR RawData$[rbp+1], 53 ; 00000035H - 00058 c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 - 0005c c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 - 00060 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 - 00064 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 - 00068 c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 - 0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 - 00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 - 00074 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 + 00052 c6 45 08 81 mov BYTE PTR RawData$[rbp], 129 ; 00000081H + 00056 c6 45 09 35 mov BYTE PTR RawData$[rbp+1], 53 ; 00000035H + 0005a c6 45 0a 00 mov BYTE PTR RawData$[rbp+2], 0 + 0005e c6 45 0b 00 mov BYTE PTR RawData$[rbp+3], 0 + 00062 c6 45 0c 00 mov BYTE PTR RawData$[rbp+4], 0 + 00066 c6 45 0d 00 mov BYTE PTR RawData$[rbp+5], 0 + 0006a c6 45 0e 00 mov BYTE PTR RawData$[rbp+6], 0 + 0006e c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0 + 00072 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0 + 00076 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0 ; 6 : ; 7 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 00078 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 0007d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00082 48 89 85 38 01 + 0007a b9 f0 00 00 00 mov ecx, 240 ; 000000f0H + 0007f e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 00084 48 89 85 38 01 00 00 mov QWORD PTR $T5[rbp], rax - 00089 48 83 bd 38 01 + 0008b 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00091 74 2c je SHORT $LN3@JitEmitRip - 00093 c7 44 24 20 00 + 00093 74 2c je SHORT $LN3@JitEmitRip + 00095 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0009b 41 b9 0a 00 00 + 0009d 41 b9 0a 00 00 00 mov r9d, 10 - 000a1 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] - 000a5 ba 0c 00 00 00 mov edx, 12 - 000aa 48 8b 8d 38 01 + 000a3 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp] + 000a7 ba 0c 00 00 00 mov edx, 12 + 000ac 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000b1 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000b6 48 89 85 48 01 + 000b3 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 000b8 48 89 85 48 01 00 00 mov QWORD PTR tv79[rbp], rax - 000bd eb 0b jmp SHORT $LN4@JitEmitRip + 000bf eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bf 48 c7 85 48 01 + 000c1 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000ca 48 8b 85 48 01 + 000cc 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000d1 48 89 85 18 01 + 000d3 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d8 48 8b 85 18 01 + 000da 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000df 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000e1 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 8 : *(PINT32)&Link->RawData[2] = RipDelta; - 000e3 b8 01 00 00 00 mov eax, 1 - 000e8 48 6b c0 02 imul rax, rax, 2 - 000ec 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 000f0 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 000f4 8b 95 88 01 00 + 000e5 b8 01 00 00 00 mov eax, 1 + 000ea 48 6b c0 02 imul rax, rax, 2 + 000ee 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 000f2 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 000f6 8b 95 88 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 000fa 89 14 08 mov DWORD PTR [rax+rcx], edx + 000fc 89 14 08 mov DWORD PTR [rax+rcx], edx ; 9 : *(PULONG)&Link->RawData[6] = Value; - 000fd b8 01 00 00 00 mov eax, 1 - 00102 48 6b c0 06 imul rax, rax, 6 - 00106 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0010a 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] - 0010e 8b 95 90 01 00 + 000ff b8 01 00 00 00 mov eax, 1 + 00104 48 6b c0 06 imul rax, rax, 6 + 00108 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0010c 48 8b 49 20 mov rcx, QWORD PTR [rcx+32] + 00110 8b 95 90 01 00 00 mov edx, DWORD PTR Value$[rbp] - 00114 89 14 08 mov DWORD PTR [rax+rcx], edx + 00116 89 14 08 mov DWORD PTR [rax+rcx], edx ; 10 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 00117 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] - 0011b 48 83 c0 30 add rax, 48 ; 00000030H - 0011f 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 00123 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00127 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] - 0012b 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 0012f 48 8b c8 mov rcx, rax - 00132 e8 00 00 00 00 call xed_decode + 00119 48 8b 45 38 mov rax, QWORD PTR Link$[rbp] + 0011d 48 83 c0 30 add rax, 48 ; 00000030H + 00121 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 00125 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 00129 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp] + 0012d 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] + 00131 48 8b c8 mov rcx, rax + 00134 e8 00 00 00 00 call xed_decode ; 11 : NcAppendToBlock(Block, Link); - 00137 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 0013b 48 8b 8d 80 01 + 00139 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 0013d 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00142 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00144 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 12 : return TRUE; - 00147 b8 01 00 00 00 mov eax, 1 + 00149 b8 01 00 00 00 mov eax, 1 ; 13 : } - 0014c 8b f8 mov edi, eax - 0014e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00152 48 8d 15 00 00 + 0014e 8b f8 mov edi, eax + 00150 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00154 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 00159 e8 00 00 00 00 call _RTC_CheckStackVars - 0015e 8b c7 mov eax, edi - 00160 48 8b 8d 50 01 + 0015b e8 00 00 00 00 call _RTC_CheckStackVars + 00160 8b c7 mov eax, edi + 00162 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00167 48 33 cd xor rcx, rbp - 0016a e8 00 00 00 00 call __security_check_cookie - 0016f 48 8d a5 68 01 + 00169 48 33 cd xor rcx, rbp + 0016c e8 00 00 00 00 call __security_check_cookie + 00171 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00176 5f pop rdi - 00177 5d pop rbp - 00178 c3 ret 0 + 00178 5f pop rdi + 00179 5d pop rbp + 0017a c3 ret 0 ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeXorD _TEXT ENDS ; COMDAT text$x @@ -1213,7 +1196,7 @@ Value$ = 400 ?dtor$0@?0??JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z@4HA ENDP ; `JitEmitRipRelativeXorD'::`1'::dtor$0 text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -1224,7 +1207,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -1236,147 +1219,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -1387,7 +1364,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -1399,147 +1376,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 177 : _Cvt = _Lobj._Getcvt(); +; 174 : _Cvt = _Lobj._Getcvt(); - 00041 48 8d 95 c8 00 + 0002a 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; 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 @@ -1550,7 +1521,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1561,104 +1532,98 @@ $LN7: 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 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 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] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 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 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 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 - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 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: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 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] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 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] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; 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 @@ -1675,79 +1640,73 @@ $LN4: 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 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 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 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 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 - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_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); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 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] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 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.27.29110\include\xlocale +; 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 @@ -1766,7 +1725,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 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 @@ -1777,251 +1736,251 @@ $LN12: 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 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 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] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 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] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 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 -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 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 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 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] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 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] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 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] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 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 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 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 - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 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 -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 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] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 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 - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 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] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 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] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 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] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 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 - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 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] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 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] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -2044,40 +2003,34 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 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] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2094,25 +2047,18 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2127,25 +2073,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -2160,25 +2099,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -2191,21 +2123,14 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 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 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/VirtualMachine.cod b/CodeVirtualizer/x64/Debug/VirtualMachine.cod index 160507d..8ddcd2c 100644 --- a/CodeVirtualizer/x64/Debug/VirtualMachine.cod +++ b/CodeVirtualizer/x64/Debug/VirtualMachine.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@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 @@ -33,55 +33,56 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon 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 -__886F7F70_xloctime DB 01H -__3DD0E9E9_xed-util@h DB 01H -__209FD46F_xed-iform-map@h DB 01H -__4E05E119_xed-inst@h DB 01H -__0607FC5A_xed-flags@h DB 01H -__B4910D57_xed-operand-accessors@h DB 01H -__8663E876_xed-state@h DB 01H -__BB5B4FF8_xed-encode@h DB 01H -__21860875_xed-encoder-hl@h DB 01H -__F7815311_xed-decoded-inst-api@h DB 01H -__FE1E1473_VirtualMachine@cpp DB 01H -__7EA464AF_istream DB 01H -__1D745195_ostream DB 01H -__6FFBAAB7_streambuf DB 01H -__528871F3_iterator DB 01H -__3E6EDFAA_iosfwd DB 01H -__CF1C1A3F_utility DB 01H -__38038D2D_xstddef DB 01H -__EE19A480_xatomic@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 +__927DDB6F_VirtualMachine@cpp 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 @@ -96,9 +97,9 @@ PUBLIC ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@st PUBLIC ?VmEmitVmEnter@@YAPEAEPEAK@Z ; VmEmitVmEnter PUBLIC ?VmEmitVmExit@@YAPEAEPEAK@Z ; VmEmitVmExit PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `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@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +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 memcpy:PROC @@ -116,80 +117,79 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC -EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck: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+65 + 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+70 + 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+70 + 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+75 + 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+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + 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+165 + 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+223 + 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+379 + 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+379 + 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$?VmEmitVmEnter@@YAPEAEPEAK@Z DD imagerel $LN3 - DD imagerel $LN3+66 + DD imagerel $LN3+43 DD imagerel $unwind$?VmEmitVmEnter@@YAPEAEPEAK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?VmEmitVmExit@@YAPEAEPEAK@Z DD imagerel $LN3 - DD imagerel $LN3+66 + DD imagerel $LN3+43 DD imagerel $unwind$?VmEmitVmExit@@YAPEAEPEAK@Z pdata ENDS ; COMDAT rtc$TMZ @@ -210,67 +210,72 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_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.27.29110\include\xlocnum', 00H ; `string' + 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@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@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.27.29110\include\xlocale', 00H ; `string' +??_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 xdata xdata SEGMENT -$unwind$?VmEmitVmExit@@YAPEAEPEAK@Z DD 025052a01H +$unwind$?VmEmitVmExit@@YAPEAEPEAK@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?VmEmitVmEnter@@YAPEAEPEAK@Z DD 025052a01H +$unwind$?VmEmitVmEnter@@YAPEAEPEAK@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H 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 025063501H +$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 025063501H +$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 035053401H +$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 035052a01H +$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 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -315,90 +320,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -408,7 +361,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?VmEmitVmExit@@YAPEAEPEAK@Z _TEXT SEGMENT Size$ = 224 @@ -423,31 +376,25 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FE1E1473_VirtualMachine@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__927DDB6F_VirtualMachine@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 10 : return NULL; - 00036 33 c0 xor eax, eax + 0001f 33 c0 xor eax, eax ; 11 : } - 00038 48 8d a5 c8 00 + 00021 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 + 00028 5f pop rdi + 00029 5d pop rbp + 0002a c3 ret 0 ?VmEmitVmExit@@YAPEAEPEAK@Z ENDP ; VmEmitVmExit _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?VmEmitVmEnter@@YAPEAEPEAK@Z _TEXT SEGMENT Size$ = 224 @@ -462,31 +409,25 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FE1E1473_VirtualMachine@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__927DDB6F_VirtualMachine@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 6 : return NULL; - 00036 33 c0 xor eax, eax + 0001f 33 c0 xor eax, eax ; 7 : } - 00038 48 8d a5 c8 00 + 00021 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 + 00028 5f pop rdi + 00029 5d pop rbp + 0002a c3 ret 0 ?VmEmitVmEnter@@YAPEAEPEAK@Z ENDP ; VmEmitVmEnter _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -497,7 +438,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -509,147 +450,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 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] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -660,7 +595,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -672,147 +607,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 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] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; 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 @@ -823,7 +752,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -834,104 +763,98 @@ $LN7: 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 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 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] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 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 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 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 - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 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: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 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] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 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] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; 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 @@ -948,79 +871,73 @@ $LN4: 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 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 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 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 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 - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_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); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 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] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 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.27.29110\include\xlocale +; 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 @@ -1039,7 +956,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 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 @@ -1050,251 +967,251 @@ $LN12: 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 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 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] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 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] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 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 -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 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 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 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] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 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] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 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] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 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 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 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 - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 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 -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 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] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 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 - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 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] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 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] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 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] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 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 - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 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] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 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] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1317,40 +1234,34 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 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] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1367,25 +1278,18 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FE1E1473_VirtualMachine@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__927DDB6F_VirtualMachine@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1400,25 +1304,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FE1E1473_VirtualMachine@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__927DDB6F_VirtualMachine@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1433,25 +1330,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FE1E1473_VirtualMachine@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__927DDB6F_VirtualMachine@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1464,21 +1354,14 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FE1E1473_VirtualMachine@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__927DDB6F_VirtualMachine@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 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 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/Virtualizer.cod b/CodeVirtualizer/x64/Debug/Virtualizer.cod index aee0dfe..2eeb0d6 100644 --- a/CodeVirtualizer/x64/Debug/Virtualizer.cod +++ b/CodeVirtualizer/x64/Debug/Virtualizer.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@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 @@ -33,55 +33,56 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon 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 -__886F7F70_xloctime DB 01H -__3DD0E9E9_xed-util@h DB 01H -__209FD46F_xed-iform-map@h DB 01H -__4E05E119_xed-inst@h DB 01H -__0607FC5A_xed-flags@h DB 01H -__B4910D57_xed-operand-accessors@h DB 01H -__8663E876_xed-state@h DB 01H -__BB5B4FF8_xed-encode@h DB 01H -__21860875_xed-encoder-hl@h DB 01H -__F7815311_xed-decoded-inst-api@h DB 01H -__463C1148_Virtualizer@cpp DB 01H -__7EA464AF_istream DB 01H -__1D745195_ostream DB 01H -__6FFBAAB7_streambuf DB 01H -__528871F3_iterator DB 01H -__3E6EDFAA_iosfwd DB 01H -__CF1C1A3F_utility DB 01H -__38038D2D_xstddef DB 01H -__EE19A480_xatomic@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 +__BBE970CC_Virtualizer@cpp 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 @@ -96,9 +97,9 @@ PUBLIC ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@st PUBLIC ?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z ; ViCanHandleInst PUBLIC ?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; ViValidateNativeCodeBlock PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `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@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +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 memcpy:PROC @@ -116,80 +117,79 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC -EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck: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+65 + 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+70 + 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+70 + 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+75 + 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+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + 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+165 + 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+223 + 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+379 + 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+379 + 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$?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN3 - DD imagerel $LN3+69 + DD imagerel $LN3+46 DD imagerel $unwind$?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN7 - DD imagerel $LN7+142 + DD imagerel $LN7+119 DD imagerel $unwind$?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT rtc$TMZ @@ -210,67 +210,72 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_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.27.29110\include\xlocnum', 00H ; `string' + 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@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@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.27.29110\include\xlocale', 00H ; `string' +??_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 xdata xdata SEGMENT -$unwind$?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H +$unwind$?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051301H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025052a01H +$unwind$?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H 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 025063501H +$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 025063501H +$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 035053401H +$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 035052a01H +$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 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -315,90 +320,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -408,7 +361,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT T$1 = 8 @@ -424,72 +377,66 @@ $LN7: 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 8b fc mov rdi, rsp - 00016 b9 42 00 00 00 mov ecx, 66 ; 00000042H - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__463C1148_Virtualizer@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BBE970CC_Virtualizer@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 9 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 00036 48 8b 85 00 01 + 0001f 48 8b 85 00 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0003d 48 8b 00 mov rax, QWORD PTR [rax] - 00040 48 89 45 08 mov QWORD PTR T$1[rbp], rax - 00044 eb 0b jmp SHORT $LN4@ViValidate + 00026 48 8b 00 mov rax, QWORD PTR [rax] + 00029 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 0002d eb 0b jmp SHORT $LN4@ViValidate $LN2@ViValidate: - 00046 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 0004a 48 8b 00 mov rax, QWORD PTR [rax] - 0004d 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 0002f 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00033 48 8b 00 mov rax, QWORD PTR [rax] + 00036 48 89 45 08 mov QWORD PTR T$1[rbp], rax $LN4@ViValidate: - 00051 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 - 00056 74 27 je SHORT $LN3@ViValidate - 00058 48 8b 85 00 01 + 0003a 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 0003f 74 27 je SHORT $LN3@ViValidate + 00041 48 8b 85 00 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0005f 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00063 48 8b 00 mov rax, QWORD PTR [rax] - 00066 48 39 45 08 cmp QWORD PTR T$1[rbp], rax - 0006a 74 13 je SHORT $LN3@ViValidate + 00048 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0004c 48 8b 00 mov rax, QWORD PTR [rax] + 0004f 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 00053 74 13 je SHORT $LN3@ViValidate ; 10 : { ; 11 : if (!ViCanHandleInst(T)) - 0006c 48 8b 4d 08 mov rcx, QWORD PTR T$1[rbp] - 00070 e8 00 00 00 00 call ?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z ; ViCanHandleInst - 00075 85 c0 test eax, eax - 00077 75 04 jne SHORT $LN5@ViValidate + 00055 48 8b 4d 08 mov rcx, QWORD PTR T$1[rbp] + 00059 e8 00 00 00 00 call ?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z ; ViCanHandleInst + 0005e 85 c0 test eax, eax + 00060 75 04 jne SHORT $LN5@ViValidate ; 12 : return FALSE; - 00079 33 c0 xor eax, eax - 0007b eb 07 jmp SHORT $LN1@ViValidate + 00062 33 c0 xor eax, eax + 00064 eb 07 jmp SHORT $LN1@ViValidate $LN5@ViValidate: ; 13 : } - 0007d eb c7 jmp SHORT $LN2@ViValidate + 00066 eb c7 jmp SHORT $LN2@ViValidate $LN3@ViValidate: ; 14 : return TRUE; - 0007f b8 01 00 00 00 mov eax, 1 + 00068 b8 01 00 00 00 mov eax, 1 $LN1@ViValidate: ; 15 : } - 00084 48 8d a5 e8 00 + 0006d 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 00074 5f pop rdi + 00075 5d pop rbp + 00076 c3 ret 0 ?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; ViValidateNativeCodeBlock _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z _TEXT SEGMENT Link$ = 224 @@ -504,31 +451,25 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__463C1148_Virtualizer@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BBE970CC_Virtualizer@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : return TRUE; - 00036 b8 01 00 00 00 mov eax, 1 + 0001f b8 01 00 00 00 mov eax, 1 ; 6 : } - 0003b 48 8d a5 c8 00 + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00042 5f pop rdi - 00043 5d pop rbp - 00044 c3 ret 0 + 0002b 5f pop rdi + 0002c 5d pop rbp + 0002d c3 ret 0 ?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z ENDP ; ViCanHandleInst _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -539,7 +480,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -551,147 +492,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 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] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -702,7 +637,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -714,147 +649,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 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] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; 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 @@ -865,7 +794,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -876,104 +805,98 @@ $LN7: 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 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 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] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 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 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 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 - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 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: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 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] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 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] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; 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 @@ -990,79 +913,73 @@ $LN4: 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 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 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 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 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 - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_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); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 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] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 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.27.29110\include\xlocale +; 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 @@ -1081,7 +998,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 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 @@ -1092,251 +1009,251 @@ $LN12: 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 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 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] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 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] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 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 -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 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 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 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] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 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] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 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] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 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 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 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 - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 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 -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 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] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 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 - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 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] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 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] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 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] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 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 - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 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] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 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] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1359,40 +1276,34 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 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] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1409,25 +1320,18 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__463C1148_Virtualizer@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BBE970CC_Virtualizer@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1442,25 +1346,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__463C1148_Virtualizer@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BBE970CC_Virtualizer@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1475,25 +1372,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__463C1148_Virtualizer@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BBE970CC_Virtualizer@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1506,21 +1396,14 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__463C1148_Virtualizer@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BBE970CC_Virtualizer@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 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 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/VmCode.cod b/CodeVirtualizer/x64/Debug/VmCode.cod index ce1c7a5..1041f49 100644 --- a/CodeVirtualizer/x64/Debug/VmCode.cod +++ b/CodeVirtualizer/x64/Debug/VmCode.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@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 @@ -33,47 +33,48 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon 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 -__886F7F70_xloctime DB 01H -__FA675702_VmCode@h DB 01H -__B456BB99_VmCode@cpp DB 01H -__7EA464AF_istream DB 01H -__1D745195_ostream DB 01H -__6FFBAAB7_streambuf DB 01H -__528871F3_iterator DB 01H -__3E6EDFAA_iosfwd DB 01H -__CF1C1A3F_utility DB 01H -__38038D2D_xstddef DB 01H -__EE19A480_xatomic@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 +__8238DD11_VmCode@h DB 01H +__D8D4E86A_VmCode@cpp 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 @@ -88,9 +89,9 @@ PUBLIC ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@st PUBLIC ??0_VM_CODE_LINK@@QEAA@XZ ; _VM_CODE_LINK::_VM_CODE_LINK PUBLIC ??0_VM_CODE_LINK@@QEAA@K@Z ; _VM_CODE_LINK::_VM_CODE_LINK PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `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@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +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 memcpy:PROC @@ -108,80 +109,79 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC -EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck: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+65 + 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+70 + 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+70 + 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+75 + 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+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + 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+165 + 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+223 + 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+379 + 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+379 + 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$??0_VM_CODE_LINK@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+157 + DD imagerel $LN3+134 DD imagerel $unwind$??0_VM_CODE_LINK@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_VM_CODE_LINK@@QEAA@K@Z DD imagerel $LN3 - DD imagerel $LN3+117 + DD imagerel $LN3+94 DD imagerel $unwind$??0_VM_CODE_LINK@@QEAA@K@Z pdata ENDS ; COMDAT rtc$TMZ @@ -202,67 +202,72 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_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.27.29110\include\xlocnum', 00H ; `string' + 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@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@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.27.29110\include\xlocale', 00H ; `string' +??_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 xdata xdata SEGMENT -$unwind$??0_VM_CODE_LINK@@QEAA@K@Z DD 025052e01H +$unwind$??0_VM_CODE_LINK@@QEAA@K@Z DD 025051701H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_VM_CODE_LINK@@QEAA@XZ DD 025052a01H +$unwind$??0_VM_CODE_LINK@@QEAA@XZ DD 025051301H DD 010e2313H DD 07007001dH DD 05006H 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 025063501H +$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 025063501H +$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 035053401H +$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 035052a01H +$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 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -307,90 +312,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -400,7 +353,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ??0_VM_CODE_LINK@@QEAA@K@Z _TEXT SEGMENT this$ = 224 @@ -417,50 +370,44 @@ $LN3: 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 fc mov rdi, rsp - 0001a b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00024 f3 ab rep stosd - 00026 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B456BB99_VmCode@cpp - 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00017 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D8D4E86A_VmCode@cpp + 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 13 : : _VM_CODE_LINK() - 0003a 48 8b 8d e0 00 + 00023 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00041 e8 00 00 00 00 call ??0_VM_CODE_LINK@@QEAA@XZ ; _VM_CODE_LINK::_VM_CODE_LINK + 0002a e8 00 00 00 00 call ??0_VM_CODE_LINK@@QEAA@XZ ; _VM_CODE_LINK::_VM_CODE_LINK ; 15 : Label = LabelId; - 00046 48 8b 85 e0 00 + 0002f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004d 8b 8d e8 00 00 + 00036 8b 8d e8 00 00 00 mov ecx, DWORD PTR LabelId$[rbp] - 00053 89 48 14 mov DWORD PTR [rax+20], ecx + 0003c 89 48 14 mov DWORD PTR [rax+20], ecx ; 16 : Flags = CODE_FLAG_IS_LABEL; - 00056 48 8b 85 e0 00 + 0003f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005d c7 40 10 01 00 + 00046 c7 40 10 01 00 00 00 mov DWORD PTR [rax+16], 1 ; 17 : } - 00064 48 8b 85 e0 00 + 0004d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0006b 48 8d a5 c8 00 + 00054 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00072 5f pop rdi - 00073 5d pop rbp - 00074 c3 ret 0 + 0005b 5f pop rdi + 0005c 5d pop rbp + 0005d c3 ret 0 ??0_VM_CODE_LINK@@QEAA@K@Z ENDP ; _VM_CODE_LINK::_VM_CODE_LINK _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ??0_VM_CODE_LINK@@QEAA@XZ _TEXT SEGMENT this$ = 224 @@ -475,68 +422,62 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B456BB99_VmCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D8D4E86A_VmCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : Flags = 0; - 00036 48 8b 85 e0 00 + 0001f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003d c7 40 10 00 00 + 00026 c7 40 10 00 00 00 00 mov DWORD PTR [rax+16], 0 ; 6 : Next = Prev = NULL; - 00044 48 8b 85 e0 00 + 0002d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004b 48 c7 40 08 00 + 00034 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 00053 48 8b 85 e0 00 + 0003c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005a 48 c7 00 00 00 + 00043 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 ; 7 : Label = 0; - 00061 48 8b 85 e0 00 + 0004a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00068 c7 40 14 00 00 + 00051 c7 40 14 00 00 00 00 mov DWORD PTR [rax+20], 0 ; 8 : RawData = NULL; - 0006f 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00076 48 c7 40 18 00 + 0005f 48 c7 40 18 00 00 00 00 mov QWORD PTR [rax+24], 0 ; 9 : RawDataSize = 0UL; - 0007e 48 8b 85 e0 00 + 00067 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00085 c7 40 20 00 00 + 0006e c7 40 20 00 00 00 00 mov DWORD PTR [rax+32], 0 ; 10 : } - 0008c 48 8b 85 e0 00 + 00075 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00093 48 8d a5 c8 00 + 0007c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0009a 5f pop rdi - 0009b 5d pop rbp - 0009c c3 ret 0 + 00083 5f pop rdi + 00084 5d pop rbp + 00085 c3 ret 0 ??0_VM_CODE_LINK@@QEAA@XZ ENDP ; _VM_CODE_LINK::_VM_CODE_LINK _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -547,7 +488,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -559,147 +500,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 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] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -710,7 +645,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -722,147 +657,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 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] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; 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 @@ -873,7 +802,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -884,104 +813,98 @@ $LN7: 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 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 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] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 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 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 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 - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 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: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 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] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 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] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; 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 @@ -998,79 +921,73 @@ $LN4: 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 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 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 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 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 - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_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); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 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] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 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.27.29110\include\xlocale +; 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 @@ -1089,7 +1006,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 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 @@ -1100,251 +1017,251 @@ $LN12: 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 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 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] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 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] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 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 -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 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 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 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] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 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] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 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] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 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 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 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 - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 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 -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 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] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 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 - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 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] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 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] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 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] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 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 - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 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] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 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] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1367,40 +1284,34 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 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] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1417,25 +1328,18 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B456BB99_VmCode@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D8D4E86A_VmCode@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1450,25 +1354,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B456BB99_VmCode@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D8D4E86A_VmCode@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1483,25 +1380,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B456BB99_VmCode@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D8D4E86A_VmCode@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1514,21 +1404,14 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B456BB99_VmCode@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D8D4E86A_VmCode@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 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 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/XedWrap.cod b/CodeVirtualizer/x64/Debug/XedWrap.cod index 862c529..5b174d2 100644 --- a/CodeVirtualizer/x64/Debug/XedWrap.cod +++ b/CodeVirtualizer/x64/Debug/XedWrap.cod @@ -1,4 +1,4 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 include listing.inc @@ -24,7 +24,7 @@ __B49664B7_stdlib@h DB 01H __EC5BC72C_propidl@h DB 01H __6DA674A0_oleauto@h DB 01H __A118E6DC_stralign@h DB 01H -__8906660C_vcruntime_new@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 @@ -33,55 +33,56 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__5DDA4519_cstddef DB 01H +__256B8DBF_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__F8119FB4_cstdlib DB 01H -__F2870A2C_limits DB 01H -__85A9AA98_type_traits DB 01H +__80A05712_cstdlib DB 01H +__44860E64_limits DB 01H +__D1154D4E_type_traits DB 01H __20BB4341_malloc@h DB 01H -__E75714E4_vcruntime_exception@h DB 01H -__E4152856_exception DB 01H -__4324C6B3_xutility DB 01H -__A58979FC_xmemory DB 01H -__AC6CB2D0_tuple DB 01H -__E0552A5D_xpolymorphic_allocator@h DB 01H -__D15AFF60_xstring DB 01H -__3AFA803E_string DB 01H -__0A4FAB91_cmath DB 01H -__6D5B120B_stdexcept DB 01H -__160863A3_xcall_once@h DB 01H -__99B256EE_atomic DB 01H -__A9557183_system_error DB 01H -__FB364CBD_vcruntime_typeinfo@h DB 01H -__33FB35AA_typeinfo DB 01H -__4E2906A2_memory DB 01H -__626C51AD_xfacet DB 01H -__2C72D662_xlocinfo DB 01H -__0E648B51_xlocale DB 01H -__1597A171_xiosbase DB 01H -__90E3ED46_xlocnum DB 01H -__165C22CB_ios DB 01H -__BB81F87E_xlocmon 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 -__886F7F70_xloctime DB 01H -__3DD0E9E9_xed-util@h DB 01H -__209FD46F_xed-iform-map@h DB 01H -__4E05E119_xed-inst@h DB 01H -__0607FC5A_xed-flags@h DB 01H -__B4910D57_xed-operand-accessors@h DB 01H -__8663E876_xed-state@h DB 01H -__BB5B4FF8_xed-encode@h DB 01H -__21860875_xed-encoder-hl@h DB 01H -__F7815311_xed-decoded-inst-api@h DB 01H -__47D9C7B6_XedWrap@cpp DB 01H -__7EA464AF_istream DB 01H -__1D745195_ostream DB 01H -__6FFBAAB7_streambuf DB 01H -__528871F3_iterator DB 01H -__3E6EDFAA_iosfwd DB 01H -__CF1C1A3F_utility DB 01H -__38038D2D_xstddef DB 01H -__EE19A480_xatomic@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 +__6301E643_XedWrap@cpp 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 @@ -94,9 +95,9 @@ PUBLIC ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr > >::_Getvals PUBLIC ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ; std::time_get > >::_Getvals PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `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@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +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 memcpy:PROC @@ -114,68 +115,67 @@ EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC EXTRN __CheckForDebuggerJustMyCode:PROC -EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck: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+65 + 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+70 + 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+70 + 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+75 + 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+106 + DD imagerel $LN3+83 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+584 + 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+165 + 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+223 + 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+379 + 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+379 + 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 rtc$TMZ @@ -196,53 +196,58 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_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.27.29110\include\xlocnum', 00H ; `string' + 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@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@DEICPIDJ@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.27.29110\include\xlocale', 00H ; `string' +??_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 xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H +$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 025063501H +$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 035053401H +$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 035052a01H +$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 035054519H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H DD 0118331dH DD 070110047H DD 05010H @@ -287,90 +292,38 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025053401H +$unwind$wmemcpy DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H DD 0118231dH DD 07011001dH DD 05010H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H DD 01132318H DD 0700c001dH DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$?__empty_global_delete@@YAXPEAX@Z DB 02H - DB 00H - DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?__empty_global_delete@@YAXPEAX@Z DB 060H - DD imagerel $ip2state$?__empty_global_delete@@YAXPEAX@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H DD 010e2313H DD 07007001dH DD 05006H - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX@Z xdata ENDS ; Function compile flags: /Odt ; COMDAT __JustMyCode_Default @@ -380,7 +333,7 @@ __JustMyCode_Default PROC ; COMDAT __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.27.29110\include\xloctime +; 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 @@ -391,7 +344,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -403,147 +356,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 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] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xloctime +; 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 @@ -554,7 +501,7 @@ __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 > >::_Getvals, COMDAT -; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 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 @@ -566,147 +513,141 @@ $LN5: 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 8b fc mov rdi, rsp - 00021 b9 4c 00 00 00 mov ecx, 76 ; 0000004cH - 00026 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002b f3 ab rep stosd - 0002d 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00035 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__886F7F70_xloctime - 0003c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 177 : _Cvt = _Lobj._Getcvt(); - - 00041 48 8d 95 c8 00 + 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] - 00048 48 8b 8d 40 01 + 00031 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0004f ff 15 00 00 00 + 00038 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 00055 48 8b 8d 30 01 + 0003e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00060 48 8b f0 mov rsi, rax - 00063 b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00068 f3 a4 rep movsb + 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 -; 178 : -; 179 : if (is_same_v<_Elem2, wchar_t>) { +; 175 : +; 176 : if (is_same_v<_Elem2, wchar_t>) { - 0006a 33 c0 xor eax, eax - 0006c 83 f8 01 cmp eax, 1 - 0006f 74 5c je SHORT $LN2@Getvals + 00053 33 c0 xor eax, eax + 00055 83 f8 01 cmp eax, 1 + 00058 74 5c je SHORT $LN2@Getvals -; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 00071 48 8b 8d 40 01 + 0005a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00078 ff 15 00 00 00 + 00061 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 0007e 48 8b c8 mov rcx, rax - 00081 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 00086 48 8b 8d 30 01 + 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] - 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 181 : _Months = +; 178 : _Months = - 00091 48 8b 8d 40 01 + 0007a 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00098 ff 15 00 00 00 + 00081 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 0009e 48 8b c8 mov rcx, rax - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 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] - 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 000b1 48 8d 0d 00 00 + 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@ - 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000bd 48 8b 8d 30 01 + 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] - 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 184 : } else { +; 181 : } else { - 000c8 e9 a3 00 00 00 jmp $LN3@Getvals + 000b1 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000cd 48 8b 85 30 01 + 000b6 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000d4 48 83 c0 2c add rax, 44 ; 0000002cH - 000d8 48 89 85 08 01 + 000bd 48 83 c0 2c add rax, 44 ; 0000002cH + 000c1 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000df 48 8b 8d 40 01 + 000c8 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000e6 ff 15 00 00 00 + 000cf ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000ec 48 8b 8d 08 01 + 000d5 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000f3 4c 8b c1 mov r8, rcx - 000f6 33 d2 xor edx, edx - 000f8 48 8b c8 mov rcx, rax - 000fb e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00100 48 8b 8d 30 01 + 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 + 000e9 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 0010b 48 8b 85 30 01 + 000f4 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00112 48 83 c0 2c add rax, 44 ; 0000002cH - 00116 48 89 85 08 01 + 000fb 48 83 c0 2c add rax, 44 ; 0000002cH + 000ff 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 0011d 48 8b 8d 40 01 + 00106 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00124 ff 15 00 00 00 + 0010d ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 0012a 48 8b 8d 08 01 + 00113 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 00131 4c 8b c1 mov r8, rcx - 00134 33 d2 xor edx, edx - 00136 48 8b c8 mov rcx, rax - 00139 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0013e 48 8b 8d 30 01 + 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 + 00127 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00149 48 8b 85 30 01 + 00132 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00150 48 83 c0 2c add rax, 44 ; 0000002cH - 00154 4c 8b c0 mov r8, rax - 00157 33 d2 xor edx, edx - 00159 48 8d 0d 00 00 + 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@ - 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00165 48 8b 8d 30 01 + 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 0014e 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax + 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 188 : } -; 189 : } +; 185 : } +; 186 : } - 00170 48 8d a5 10 01 + 00159 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00177 5f pop rdi - 00178 5e pop rsi - 00179 5d pop rbp - 0017a c3 ret 0 + 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 > >::_Getvals _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; 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 @@ -717,7 +658,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -728,104 +669,98 @@ $LN7: 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 8b fc mov rdi, rsp - 00020 b9 56 00 00 00 mov ecx, 86 ; 00000056H - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 78 - 01 00 00 mov rcx, QWORD PTR [rsp+376] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 564 : // convert C string to _Elem sequence using _Cvtvec -; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - - 00040 48 8b 8d 40 01 + 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] - 00047 e8 00 00 00 00 call strlen - 0004c 48 ff c0 inc rax - 0004f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 566 : -; 567 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 00053 c7 44 24 20 37 - 02 00 00 mov DWORD PTR [rsp+32], 567 ; 00000237H - 0005b 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00062 41 b8 02 00 00 + 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 - 00068 ba 01 00 00 00 mov edx, 1 - 0006d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00071 ff 15 00 00 00 + 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 - 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 568 : -; 569 : if (!_Ptrdest) { +; 527 : +; 528 : if (!_Ptrdest) { - 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00080 75 05 jne SHORT $LN5@Maklocstr + 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00069 75 05 jne SHORT $LN5@Maklocstr -; 570 : _Xbad_alloc(); +; 529 : _Xbad_alloc(); - 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 571 : } -; 572 : -; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 530 : } +; 531 : +; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00087 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 0008b 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 0008f eb 27 jmp SHORT $LN4@Maklocstr + 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: - 00091 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 00095 48 ff c8 dec rax - 00098 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0009c 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000a0 48 ff c0 inc rax - 000a3 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 000a7 48 8b 85 40 01 + 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] - 000ae 48 ff c0 inc rax - 000b1 48 89 85 40 01 + 00097 48 ff c0 inc rax + 0009a 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000bd 76 12 jbe SHORT $LN3@Maklocstr + 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000a6 76 12 jbe SHORT $LN3@Maklocstr -; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000c3 48 8b 8d 40 01 + 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] - 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000cd 88 08 mov BYTE PTR [rax], cl + 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000b6 88 08 mov BYTE PTR [rax], cl -; 575 : } +; 534 : } - 000cf eb c0 jmp SHORT $LN2@Maklocstr + 000b8 eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 576 : -; 577 : return _Ptrdest; +; 535 : +; 536 : return _Ptrdest; - 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 578 : } +; 537 : } - 000d5 48 8d a5 28 01 + 000be 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000dc 5f pop rdi - 000dd 5d pop rbp - 000de c3 ret 0 + 000c5 5f pop rdi + 000c6 5d pop rbp + 000c7 c3 ret 0 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum +; 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 @@ -842,79 +777,73 @@ $LN4: 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 8b fc mov rdi, rsp - 00016 b9 4e 00 00 00 mov ecx, 78 ; 0000004eH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 58 - 01 00 00 mov rcx, QWORD PTR [rsp+344] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__90E3ED46_xlocnum - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; - 00036 48 8b 8d 20 01 + 0001f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003d ff 15 00 00 00 + 00026 ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 00043 48 ff c0 inc rax - 00046 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 0002c 48 ff c0 inc rax + 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax ; 92 : ; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 0004a 8b 05 00 00 00 + 00033 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00050 83 c0 03 add eax, 3 - 00053 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00057 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0005e 41 b8 02 00 00 + 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 - 00064 ba 02 00 00 00 mov edx, 2 - 00069 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0006d ff 15 00 00 00 + 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 - 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0007c 75 05 jne SHORT $LN2@Maklocwcs + 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00065 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_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); - 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00087 48 8b 95 20 01 + 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] - 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 00092 e8 00 00 00 00 call wmemcpy + 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 0007b e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 0009b 48 8d a5 08 01 + 00084 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 000a2 5f pop rdi - 000a3 5d pop rbp - 000a4 c3 ret 0 + 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.27.29110\include\xlocale +; 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 @@ -933,7 +862,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 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 @@ -944,251 +873,251 @@ $LN12: 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 8b fc mov rdi, rsp - 00020 b9 8e 00 00 00 mov ecx, 142 ; 0000008eH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 58 + 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] - 00034 48 8b 05 00 00 + 00036 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003b 48 33 c5 xor rax, rbp - 0003e 48 89 85 f8 01 + 0003d 48 33 c5 xor rax, rbp + 00040 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00045 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale - 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 582 : // convert C string to wchar_t sequence using _Cvtvec -; 583 : size_t _Count; -; 584 : size_t _Count1; -; 585 : size_t _Wchars; -; 586 : const char* _Ptr1; -; 587 : int _Bytes; -; 588 : wchar_t _Wc; -; 589 : mbstate_t _Mbst1 = {}; - - 00051 48 8d 85 c8 00 + 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] - 00058 48 8b f8 mov rdi, rax - 0005b 33 c0 xor eax, eax - 0005d b9 08 00 00 00 mov ecx, 8 - 00062 f3 aa rep stosb + 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 -; 590 : -; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 549 : +; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00064 48 8b 8d 20 02 + 00066 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006b e8 00 00 00 00 call strlen - 00070 48 ff c0 inc rax - 00073 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00077 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007b 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 0007f 48 c7 45 48 00 + 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 - 00087 48 8b 85 20 02 + 00089 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00092 eb 35 jmp SHORT $LN4@Maklocstr + 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00094 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00094 48 63 85 84 00 + 00096 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0009f 48 2b c8 sub rcx, rax - 000a2 48 8b c1 mov rax, rcx - 000a5 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000a9 48 63 85 84 00 + 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] - 000b0 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b4 48 03 c8 add rcx, rax - 000b7 48 8b c1 mov rax, rcx - 000ba 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000be 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c2 48 ff c0 inc rax - 000c5 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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: - 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000ce 76 3a jbe SHORT $LN3@Maklocstr + 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000d0 76 3a jbe SHORT $LN3@Maklocstr -; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d0 48 8b 85 30 02 + 000d2 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000dc 4c 8d 8d c8 00 + 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] - 000e3 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e7 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000eb 48 8d 8d a4 00 + 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] - 000f2 e8 00 00 00 00 call _Mbrtowc - 000f7 89 85 84 00 00 + 000f4 e8 00 00 00 00 call _Mbrtowc + 000f9 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000fd 83 bd 84 00 00 + 000ff 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00104 7f 02 jg SHORT $LN8@Maklocstr + 00106 7f 02 jg SHORT $LN8@Maklocstr -; 594 : break; +; 553 : break; - 00106 eb 02 jmp SHORT $LN3@Maklocstr + 00108 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 595 : } -; 596 : } +; 554 : } +; 555 : } - 00108 eb 8a jmp SHORT $LN2@Maklocstr + 0010a eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 597 : -; 598 : ++_Wchars; // count terminating nul +; 556 : +; 557 : ++_Wchars; // count terminating nul - 0010a 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 0010e 48 ff c0 inc rax - 00111 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 599 : -; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 558 : +; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00115 c7 44 24 20 58 - 02 00 00 mov DWORD PTR [rsp+32], 600 ; 00000258H - 0011d 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00124 41 b8 02 00 00 + 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 - 0012a ba 02 00 00 00 mov edx, 2 - 0012f 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00133 ff 15 00 00 00 + 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 - 00139 48 89 85 e8 00 + 0013b 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 601 : -; 602 : if (!_Ptrdest) { +; 560 : +; 561 : if (!_Ptrdest) { - 00140 48 83 bd e8 00 + 00142 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00148 75 05 jne SHORT $LN9@Maklocstr + 0014a 75 05 jne SHORT $LN9@Maklocstr -; 603 : _Xbad_alloc(); +; 562 : _Xbad_alloc(); - 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 604 : } -; 605 : -; 606 : wchar_t* _Ptrnext = _Ptrdest; +; 563 : } +; 564 : +; 565 : wchar_t* _Ptrnext = _Ptrdest; - 0014f 48 8b 85 e8 00 + 00151 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00156 48 89 85 08 01 + 00158 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 607 : mbstate_t _Mbst2 = {}; +; 566 : mbstate_t _Mbst2 = {}; - 0015d 48 8d 85 28 01 + 0015f 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00164 48 8b f8 mov rdi, rax - 00167 33 c0 xor eax, eax - 00169 b9 08 00 00 00 mov ecx, 8 - 0016e f3 aa rep stosb + 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 -; 608 : -; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 567 : +; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00170 eb 4d jmp SHORT $LN7@Maklocstr + 00172 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00172 48 63 85 84 00 + 00174 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00179 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017d 48 2b c8 sub rcx, rax - 00180 48 8b c1 mov rax, rcx - 00183 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00187 48 63 85 84 00 + 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] - 0018e 48 8b 8d 20 02 + 00190 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00195 48 03 c8 add rcx, rax - 00198 48 8b c1 mov rax, rcx - 0019b 48 89 85 20 02 + 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 - 001a2 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a6 48 ff c8 dec rax - 001a9 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001ad 48 8b 85 08 01 + 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] - 001b4 48 83 c0 02 add rax, 2 - 001b8 48 89 85 08 01 + 001b6 48 83 c0 02 add rax, 2 + 001ba 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c4 76 40 jbe SHORT $LN6@Maklocstr + 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c6 76 40 jbe SHORT $LN6@Maklocstr -; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c6 48 8b 85 30 02 + 001c8 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d2 4c 8d 8d 28 01 + 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] - 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001dd 48 8b 95 20 02 + 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] - 001e4 48 8b 8d 08 01 + 001e6 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001eb e8 00 00 00 00 call _Mbrtowc - 001f0 89 85 84 00 00 + 001ed e8 00 00 00 00 call _Mbrtowc + 001f2 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f6 83 bd 84 00 00 + 001f8 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001fd 7f 02 jg SHORT $LN10@Maklocstr + 001ff 7f 02 jg SHORT $LN10@Maklocstr -; 611 : break; +; 570 : break; - 001ff eb 05 jmp SHORT $LN6@Maklocstr + 00201 eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 612 : } -; 613 : } +; 571 : } +; 572 : } - 00201 e9 6c ff ff ff jmp $LN5@Maklocstr + 00203 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 614 : -; 615 : *_Ptrnext = L'\0'; +; 573 : +; 574 : *_Ptrnext = L'\0'; - 00206 33 c0 xor eax, eax - 00208 48 8b 8d 08 01 + 00208 33 c0 xor eax, eax + 0020a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 0020f 66 89 01 mov WORD PTR [rcx], ax + 00211 66 89 01 mov WORD PTR [rcx], ax -; 616 : -; 617 : return _Ptrdest; +; 575 : +; 576 : return _Ptrdest; - 00212 48 8b 85 e8 00 + 00214 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 618 : } +; 577 : } - 00219 48 8b f8 mov rdi, rax - 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00220 48 8d 15 00 00 + 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 - 00227 e8 00 00 00 00 call _RTC_CheckStackVars - 0022c 48 8b c7 mov rax, rdi - 0022f 48 8b 8d f8 01 + 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] - 00236 48 33 cd xor rcx, rbp - 00239 e8 00 00 00 00 call __security_check_cookie - 0023e 48 8d a5 08 02 + 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] - 00245 5f pop rdi - 00246 5d pop rbp - 00247 c3 ret 0 + 00247 5f pop rdi + 00248 5d pop rbp + 00249 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1211,40 +1140,34 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 + 0001d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__93DC0B45_wchar@h - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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)); - 00040 48 8b 85 f0 00 + 00029 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00047 48 d1 e0 shl rax, 1 - 0004a 4c 8b c0 mov r8, rax - 0004d 48 8b 95 e8 00 + 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] - 00054 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 0005b e8 00 00 00 00 call memcpy + 00044 e8 00 00 00 00 call memcpy ; 237 : } - 00060 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\$Fanta\code-virtualizer\CodeVirtualizer\XedWrap.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\XedWrap.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1261,25 +1184,18 @@ $LN3: 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 8b fc mov rdi, rsp - 00020 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002a f3 ab rep stosd - 0002c 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 00034 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__47D9C7B6_XedWrap@cpp - 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00040 90 npad 1 - 00041 48 8d a5 c8 00 + 0001d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__6301E643_XedWrap@cpp + 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00029 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\XedWrap.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\XedWrap.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1294,25 +1210,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__47D9C7B6_XedWrap@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__6301E643_XedWrap@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\XedWrap.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\XedWrap.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1327,25 +1236,18 @@ $LN3: 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 8b fc mov rdi, rsp - 0001b b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00025 f3 ab rep stosd - 00027 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002f 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__47D9C7B6_XedWrap@cpp - 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 0003b 90 npad 1 - 0003c 48 8d a5 c8 00 + 00018 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__6301E643_XedWrap@cpp + 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00024 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00043 5f pop rdi - 00044 5d pop rbp - 00045 c3 ret 0 + 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:\$Fanta\code-virtualizer\CodeVirtualizer\XedWrap.cpp +; File C:\@\Work\code-virtualizer\CodeVirtualizer\XedWrap.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1358,21 +1260,14 @@ $LN3: 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 fc mov rdi, rsp - 00016 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH - 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00020 f3 ab rep stosd - 00022 48 8b 8c 24 08 - 01 00 00 mov rcx, QWORD PTR [rsp+264] - 0002a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__47D9C7B6_XedWrap@cpp - 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00036 90 npad 1 - 00037 48 8d a5 c8 00 + 00013 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__6301E643_XedWrap@cpp + 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0001f 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 + 00026 5f pop rdi + 00027 5d pop rbp + 00028 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END diff --git a/x64/Debug/CodeVirtualizer.ilk b/x64/Debug/CodeVirtualizer.ilk deleted file mode 100644 index 7a03a9da5439e4dd2a8de8775bc442b94e187b3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2701876 zcmeFa4}9Iz{XhOrni3TRK@eO7sYV4sRB+SYwox~2+NKqRrkb{Cn`*SF1{nt#F=0Uv z1Q|gPWERtr5f)o!*%n(6mTlRV5yS*xF~Rrwe4lgjKKGq_n}mIS`|R_(Cy#f|d7pD$ zuk$?5^Z(DiH*4Lh&6~DtT2tcjue)f&>dhYC%952AuH3SE+O(Yyuq>-|sy||P>p<(7 zi}7N4#ZPv>rtj3By%AwOB|QqRon}q>Xv0c|(hORMS-VE=exQ|@ZCRfkYWqe1?kLNO zwVmDwT69NR)=svUV_V+4EGtTSPOcCW}kZFWzdizDa9DAQ+Txz;ROCa&HE5s~+r{VZ!g z#PYp7S0u(S6V?0A5gmul5mb|pdXV<3MYfyo+O+>|jc9&zjo6;OOjzEvA}(c#n2JDm zwXV%sCT76@3@!LA?5H%P70Qg}GE{_b;eU&i-Tzyt_@5H>UU{ya^XR6vBKdoCvIjta zu?PO4Y^$c(ueLY+V(eE*RtMUL3JtJYm4C->!NUV0hhM@Bgc%4k5N06EK$wC5a|{gJ zl_i)d|Ch6Eo9@A{XN#1N=GyORhse2j-&gXz<@jY{;D{{I^qSuePhT`&RC<=!?!@Ef z+qR`l>?!hnd+S^g5B)%oRn?tF%6s7<(6Ih-UaRnc+M9VxY}0l2hf}aqy-r;rpJ{o3|Blekx_#KbknTHY#&N6RNq&k{vqifE4b3~ zm9>t0nA{sC{RO{>c>tV$G+PWD=7hCB=j1(VX%^NQ%S7Xg(ywHV#MXXNmZ-TfTO{p{ zvc){bZ)T(*H zl%c!fQOQU4u1-8NPOr~tFQ&hCC%xqtVqS*WzI?H$+Fh>u7`A<2Y+7}ww_0xSl?9{j zm_udS&D3*amPr31OZ0s>ThwOB_?0uAwOh&6PX4zaFZ+gc)WN)UC=1jZTR-G-lE!jh zQs(5buEa0u-k&XoAC-Rj*;%3y?ZTGd!M~=9v&8TsM^ABij;Q;A^WL%8al6&zd6tRF z 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
  • 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

    %S~EXol-nnO9_M{_Ah{AfPqh#xJW9Py(? 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�na~oP(HQo3DJ*nKVHAZ3nNj# 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

    @b7psjiZ1YRb8H*$zr8bb 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∾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