From 0b45e5993be30b8fe17d9688e4120866332a3674 Mon Sep 17 00:00:00 2001 From: Iizerd Date: Mon, 18 Oct 2021 03:07:52 -0700 Subject: [PATCH] opaque branching done --- CodeVirtualizer/Main.cpp | 67 +- CodeVirtualizer/Nop.h | 2 +- CodeVirtualizer/Obfuscator.cpp | 47 + CodeVirtualizer/Obfuscator.h | 15 +- CodeVirtualizer/OpaqueBranching.cpp | 6 + CodeVirtualizer/x64/Debug/Assembly.lst | 4 +- .../x64/Debug/CodeVirtualizer.exe.recipe | 12 +- CodeVirtualizer/x64/Debug/Jit.cod | 6228 ++--- CodeVirtualizer/x64/Debug/Junk.cod | 1213 +- CodeVirtualizer/x64/Debug/Main.cod | 20186 +++++++++++++--- CodeVirtualizer/x64/Debug/NativeCode.cod | 18725 +++++++------- CodeVirtualizer/x64/Debug/Nop.cod | 1578 +- CodeVirtualizer/x64/Debug/Obfuscator.cod | 3787 ++- CodeVirtualizer/x64/Debug/OpaqueBranching.cod | 2536 +- 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 +- 22 files changed, 43304 insertions(+), 23000 deletions(-) diff --git a/CodeVirtualizer/Main.cpp b/CodeVirtualizer/Main.cpp index 39db16e..029017e 100644 --- a/CodeVirtualizer/Main.cpp +++ b/CodeVirtualizer/Main.cpp @@ -1,14 +1,12 @@ #include #include +#include #include "Windas.h" #include "XedWrap.h" #include "NativeCode.h" -#include "RipXorInst.h" -#include "RipMovInst.h" -#include "OpaqueBranching.h" -#include "Jit.h" +#include "Obfuscator.h" PVOID MakeExecutableBuffer(PVOID Buffer, ULONG BufferSize) @@ -19,18 +17,26 @@ PVOID MakeExecutableBuffer(PVOID Buffer, ULONG BufferSize) RtlCopyMemory(ExecBuffer, Buffer, BufferSize); } +VOID PutToFile(PVOID Buffer, ULONG BufferSize) +{ + std::ofstream fout; + fout.open("C:\\Users\\Iizerd\\Desktop\\Leeg Hake\\Test.m", std::ios::binary | std::ios::out); + fout.write((PCHAR)Buffer, BufferSize); + fout.close(); +} + UCHAR TestBuffer[] = { 0x48, 0x33, 0xC0, 0x48, 0x33, 0xC0, - 0xEB, 0x0E, + //0xEB, 0x0E, 0x48, 0x33, 0xC0, 0x48, 0x33, 0xC0, - 0x7E, 0x06, + //0x7E, 0x06, 0x48, 0x33, 0xC0, 0x48, 0x33, 0xC0, 0x48, 0x33, 0xC0, 0x48, 0x33, 0xC0, - 0xEB, 0xF8, + //0xEB, 0xF8, 0x50, 0x48, 0xB8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x48, 0x87, 0x04, 0x24, @@ -38,8 +44,25 @@ UCHAR TestBuffer[] = { }; ULONG TestBufferSize = sizeof(TestBuffer); -UCHAR meme1[] = { 0xb8, 0xde, 0xc0, 0xac, 0x0e }; -UCHAR meme2[] = { 0xc3 }; +UCHAR meme1[] = { + 0x31, 0xc0, + 0x83, 0xc0, 0x01, + 0x83, 0xc0, 0x01, +0x83, 0xc0, 0x01, +0x83, 0xc0, 0x01, +0x83, 0xc0, 0x01, +0x83, 0xc0, 0x01, +0x83, 0xc0, 0x01, +0x83, 0xc0, 0x01, +0x83, 0xc0, 0x01, +0x83, 0xc0, 0x01, +0x83, 0xc0, 0x01, +0x83, 0xc0, 0x01, +0x83, 0xc0, 0x01, +0x83, 0xc0, 0x01, +0x83, 0xc0, 0x01, +0xc3, +}; int main() { @@ -47,17 +70,21 @@ int main() srand(time(NULL)); NATIVE_CODE_BLOCK Block; - NcDisassemble(&Block, TestBuffer, TestBufferSize); - NATIVE_CODE_BLOCK NotTaken; - NATIVE_CODE_BLOCK Taken; - printf("\n\nOriginal\n"); - NcDebugPrint(&Block); - ObfCreateOpaqueBranches(Block.Start->Next, Block.Start->Next->Next->Next->Next, &NotTaken, &Taken); - ObfCombineOpaqueBranches(&NotTaken, &Taken, NcGenUnusedLabelId(&Block), NcGenUnusedLabelId(&Block)); - ObfInsertOpaqueBranchBlock(Block.Start->Next, Block.Start->Next->Next->Next->Next, &NotTaken); - printf("\n\nNew\n"); - NcDebugPrint(&Block); - + NcDisassemble(&Block, meme1, sizeof(meme1)); + OBFUSCATOR Obf; + Obf.Flags = 0; + Obf.MinInstCount = 3; + Obf.GlobalBlock = &Block; + ObfObfuscate(&Obf, &Block); + ObfObfuscate(&Obf, &Block); + //NcDebugPrint(&Block); + + ULONG AsmSize; + PVOID Asm = NcAssemble(&Block, &AsmSize); + PVOID Exec = MakeExecutableBuffer(Asm, AsmSize); + typedef ULONG(*FnGetFour)(); + printf("numba is: %u size is %u\n\n", ((FnGetFour)Exec)(), AsmSize); + PutToFile(Asm, AsmSize); //PNATIVE_CODE_LINK Return1776 = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, meme1, sizeof(meme1)); diff --git a/CodeVirtualizer/Nop.h b/CodeVirtualizer/Nop.h index 46950c9..e328ce5 100644 --- a/CodeVirtualizer/Nop.h +++ b/CodeVirtualizer/Nop.h @@ -7,6 +7,6 @@ PNATIVE_CODE_LINK NcEmitNop(); -BOOL NcEmitNopGroup(ULONG Count, PNATIVE_CODE_BLOCK Block) +BOOL NcEmitNopGroup(ULONG Count, PNATIVE_CODE_BLOCK Block); #endif \ No newline at end of file diff --git a/CodeVirtualizer/Obfuscator.cpp b/CodeVirtualizer/Obfuscator.cpp index 02f045a..08931e6 100644 --- a/CodeVirtualizer/Obfuscator.cpp +++ b/CodeVirtualizer/Obfuscator.cpp @@ -3,5 +3,52 @@ +VOID ObfObfuscate(POBFUSCATOR Obf, PNATIVE_CODE_BLOCK Block) +{ + ULONG InstructionCount = NcCountInstructions(Block); + if (InstructionCount <= Obf->MinInstCount) + { + } + else + { + ULONG TargetCount = InstructionCount / 2; + ULONG CurrentCount = 0; + PNATIVE_CODE_LINK NewBlockStart = Block->Start; + for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next;) + { + if (T->Flags & CODE_FLAG_IS_LABEL) + { + T = T->Next; + continue; + } + + ++CurrentCount; + + if (CurrentCount == TargetCount) + { + NATIVE_CODE_BLOCK NotTaken, Taken; + ObfCreateOpaqueBranches(NewBlockStart, T, &NotTaken, &Taken); + ObfObfuscate(Obf, &NotTaken); + ObfObfuscate(Obf, &Taken); + ObfCombineOpaqueBranches(&NotTaken, &Taken, NcGenUnusedLabelId(Obf->GlobalBlock), NcGenUnusedLabelId(Obf->GlobalBlock)); + ObfInsertOpaqueBranchBlock(NewBlockStart, T, &NotTaken); + T = NotTaken.End; + NewBlockStart = T->Next; + CurrentCount = 0; + } + T = T->Next; + } + if (NewBlockStart) + { + NATIVE_CODE_BLOCK NotTaken, Taken; + ObfCreateOpaqueBranches(NewBlockStart, Block->End, &NotTaken, &Taken); + ObfObfuscate(Obf, &NotTaken); + ObfObfuscate(Obf, &Taken); + ObfCombineOpaqueBranches(&NotTaken, &Taken, NcGenUnusedLabelId(Obf->GlobalBlock), NcGenUnusedLabelId(Obf->GlobalBlock)); + ObfInsertOpaqueBranchBlock(NewBlockStart, Block->End, &NotTaken); + } + } + +} diff --git a/CodeVirtualizer/Obfuscator.h b/CodeVirtualizer/Obfuscator.h index b1b3781..93dfca2 100644 --- a/CodeVirtualizer/Obfuscator.h +++ b/CodeVirtualizer/Obfuscator.h @@ -11,19 +11,14 @@ #define OBF_ATTRIBUTE_JIT (1<<0) #define OBF_ATTRIBUTE_OPAQUE_BRANCHES (1<<1) - - typedef struct _OBFUSCATOR { - ULONG MinBlockSize; - PNATIVE_CODE_BLOCK Block; + ULONG MinInstCount; + ULONG Flags; + PNATIVE_CODE_BLOCK GlobalBlock; }OBFUSCATOR, *POBFUSCATOR; -//recursive obfuscation routine -VOID ObfObfuscate(PNATIVE_CODE_BLOCK Block) -{ - ULONG InstructionCount = NcCountInstructions(Block); - -} +//Recursive obfuscation routine using opaque branches and jit +VOID ObfObfuscate(POBFUSCATOR Obf, PNATIVE_CODE_BLOCK Block); #endif \ No newline at end of file diff --git a/CodeVirtualizer/OpaqueBranching.cpp b/CodeVirtualizer/OpaqueBranching.cpp index 0fe926b..7200ccf 100644 --- a/CodeVirtualizer/OpaqueBranching.cpp +++ b/CodeVirtualizer/OpaqueBranching.cpp @@ -123,6 +123,12 @@ BOOL ObfInsertOpaqueBranchBlock(PNATIVE_CODE_LINK Start, PNATIVE_CODE_LINK End, if (End->Next) End->Next->Prev = OpaqueBranchBlock->End; + if (Start->Block->Start == Start) + Start->Block->Start = OpaqueBranchBlock->Start; + + if (Start->Block->End == End) + Start->Block->End = OpaqueBranchBlock->End; + //Update group for the current isntructions for (PNATIVE_CODE_LINK T = OpaqueBranchBlock->Start; T && T != OpaqueBranchBlock->End->Next; T = T->Next) T->Block = Start->Block; diff --git a/CodeVirtualizer/x64/Debug/Assembly.lst b/CodeVirtualizer/x64/Debug/Assembly.lst index 7c0c08f..a65461c 100644 --- a/CodeVirtualizer/x64/Debug/Assembly.lst +++ b/CodeVirtualizer/x64/Debug/Assembly.lst @@ -1,4 +1,4 @@ -Microsoft (R) Macro Assembler (x64) Version 14.29.30038.1 10/17/21 15:17:32 +Microsoft (R) Macro Assembler (x64) Version 14.27.29111.0 10/18/21 01:00:27 Assembly.asm Page 1 - 1 @@ -6,7 +6,7 @@ Assembly.asm Page 1 - 1 END - Microsoft (R) Macro Assembler (x64) Version 14.29.30038.1 10/17/21 15:17:32 + Microsoft (R) Macro Assembler (x64) Version 14.27.29111.0 10/18/21 01:00:27 Assembly.asm Symbols 2 - 1 diff --git a/CodeVirtualizer/x64/Debug/CodeVirtualizer.exe.recipe b/CodeVirtualizer/x64/Debug/CodeVirtualizer.exe.recipe index dfc4423..fce1cf4 100644 --- a/CodeVirtualizer/x64/Debug/CodeVirtualizer.exe.recipe +++ b/CodeVirtualizer/x64/Debug/CodeVirtualizer.exe.recipe @@ -1,11 +1,7 @@  - - - C:\@\Work\code-virtualizer\x64\Debug\CodeVirtualizer.exe - - - - - + C:\$Fanta\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 e3a7666..57a5695 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.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 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 -__02E23235_vcruntime_new@h DB 01H +__8906660C_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,56 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__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 __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__0A045E7B_NativeCode@h DB 01H -__8546B33E_Jit@cpp DB 01H -__092B7E84_vector DB 01H -__0615AC09_istream DB 01H -__65C59933_ostream DB 01H -__021983EB_streambuf DB 01H -__6D45C6E6_iterator DB 01H -__886FDBE2_iosfwd DB 01H -__B7ADD299_utility DB 01H -__40B2458B_xstddef DB 01H -__83FB8DDC_xatomic@h DB 01H +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_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 msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -93,8 +91,6 @@ 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 @@ -136,13 +132,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@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@_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@_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 ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@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 @@ -198,145 +194,133 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD imagerel $LN21 - DD imagerel $LN21+453 + DD imagerel $LN21+476 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 +$pdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN7 + DD imagerel $LN7+233 DD imagerel $unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD imagerel $LN6 - DD imagerel $LN6+123 - DD imagerel $unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD imagerel $LN3 - DD imagerel $LN3+151 - DD imagerel $unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ -pdata ENDS -; COMDAT pdata -pdata SEGMENT $pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+82 + DD imagerel $LN4+105 DD imagerel $unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD imagerel $LN3 - DD imagerel $LN3+77 + DD imagerel $LN3+100 DD imagerel $unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+203 + DD imagerel $LN3+202 DD imagerel $unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD imagerel $LN3 - DD imagerel $LN3+85 + DD imagerel $LN3+108 DD imagerel $unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD imagerel $LN4 - DD imagerel $LN4+257 + DD imagerel $LN4+280 DD imagerel $unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+56 + DD imagerel $LN3+80 DD imagerel $unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 DD imagerel $unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+82 + DD imagerel $LN4+105 DD imagerel $unwind$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN6 - DD imagerel $LN6+280 + DD imagerel $LN6+278 DD imagerel $unwind$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata @@ -348,7 +332,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN6 - DD imagerel $LN6+280 + DD imagerel $LN6+278 DD imagerel $unwind$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata @@ -360,49 +344,49 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z DD imagerel $LN11 - DD imagerel $LN11+376 + DD imagerel $LN11+399 DD imagerel $unwind$?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z DD imagerel $LN9 - DD imagerel $LN9+285 + DD imagerel $LN9+308 DD imagerel $unwind$?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN5 - DD imagerel $LN5+211 + DD imagerel $LN5+234 DD imagerel $unwind$?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN9 - DD imagerel $LN9+331 + DD imagerel $LN9+329 DD imagerel $unwind$?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD imagerel $LN7 - DD imagerel $LN7+308 + DD imagerel $LN7+331 DD imagerel $unwind$?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+69 DD imagerel $unwind$?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+69 DD imagerel $unwind$?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD imagerel $LN25 - DD imagerel $LN25+1033 + DD imagerel $LN25+1056 DD imagerel $unwind$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z pdata ENDS ; COMDAT pdata @@ -420,7 +404,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+1243 + DD imagerel $LN25+1241 DD imagerel $unwind$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z pdata ENDS ; COMDAT pdata @@ -438,7 +422,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+1109 + DD imagerel $LN29+1132 DD imagerel $unwind$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z pdata ENDS ; COMDAT pdata @@ -450,7 +434,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+1243 + DD imagerel $LN29+1266 DD imagerel $unwind$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z pdata ENDS ; COMDAT pdata @@ -462,61 +446,61 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN8 - DD imagerel $LN8+175 + DD imagerel $LN8+197 DD imagerel $unwind$?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN8 - DD imagerel $LN8+175 + DD imagerel $LN8+197 DD imagerel $unwind$?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN8 - DD imagerel $LN8+175 + DD imagerel $LN8+197 DD imagerel $unwind$?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD imagerel $LN3 - DD imagerel $LN3+53 + DD imagerel $LN3+76 DD imagerel $unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD imagerel $LN3 - DD imagerel $LN3+84 + DD imagerel $LN3+107 DD imagerel $unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD imagerel $LN3 - DD imagerel $LN3+65 + DD imagerel $LN3+89 DD imagerel $unwind$??$_Delete_plain_internal@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD imagerel $LN4 - DD imagerel $LN4+98 + DD imagerel $LN4+121 DD imagerel $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD imagerel $LN3 - DD imagerel $LN3+72 + DD imagerel $LN3+95 DD imagerel $unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD imagerel $LN3 - DD imagerel $LN3+74 + DD imagerel $LN3+97 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 @@ -537,21 +521,21 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@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' +??_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' 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 @@ -570,9 +554,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@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ +; COMDAT ??_C@_1NA@FEEOBALC@?$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' +??_C@_1NA@FEEOBALC@?$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 @@ -585,16 +569,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, '9', 00H, '.', 00H, '3', 00H, '0', 00H, '0', 00H - DB '3', 00H, '7', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' + 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, '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@ +; COMDAT ??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xmemory', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xmemory', 00H ; `string' CONST ENDS ; COMDAT ??_C@_02DKCKIIND@?$CFs@ CONST SEGMENT @@ -606,11 +590,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 099H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var +?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA DD 084H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var _DATA ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD 025051d01H +$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 DD 0118231dH DD 07011001dH DD 05010H @@ -628,7 +612,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 025051819H +$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 DD 01132318H DD 0700c001dH DD 0500bH @@ -648,7 +632,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 025051819H +$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025052f19H DD 01132318H DD 0700c001dH DD 0500bH @@ -657,58 +641,105 @@ $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025051819H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025051d01H +$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 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 -$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 +$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 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 025051801H +$unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD 025052f19H 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 025051801H +$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025052f19H 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 025052101H +$unwind$?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025053701H DD 011c2321H DD 07015001fH DD 05014H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025052101H +$unwind$?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025053701H DD 011c2321H DD 07015001fH DD 05014H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025052101H +$unwind$?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 025053701H 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 @@ -720,7 +751,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 'M', 02H + DB 0a9H, 02H DB 02H DB 'p' DB 00H @@ -739,18 +770,13 @@ $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 025052211H +$unwind$?JitEmitPostRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DD 025053911H 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 @@ -762,7 +788,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 'M', 02H + DB 0a9H, 02H DB 02H DB 'p' DB 00H @@ -781,28 +807,13 @@ $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 025052211H +$unwind$?JitEmitPreRipBitwiseOp@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@KHH@Z DD 025053911H 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 @@ -820,7 +831,7 @@ xdata SEGMENT $ip2state$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DB 0aH DB 00H DB 00H - DB 0c9H, 02H + DB 0c1H, 02H DB 02H DB 'p' DB 00H @@ -845,7 +856,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 025054119H +$unwind$?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD 025053f19H DD 01122317H DD 0700b007fH DD 0500aH @@ -874,16 +885,6 @@ 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 @@ -901,7 +902,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 @@ -926,7 +927,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 025051711H +$unwind$?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z DD 025052e11H DD 01122317H DD 0700b007dH DD 0500aH @@ -935,33 +936,28 @@ $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 025051801H +$unwind$?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD 025051801H +$unwind$?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD 025051801H +$unwind$?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z DD 025052f01H DD 01132318H DD 0700c002dH DD 0500bH xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 036H - DW 0132H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025053d19H +$unwind$?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025053b19H DD 010e2313H DD 070070031H DD 05006H @@ -988,35 +984,25 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025051301H +$unwind$?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025052a01H DD 010e2313H DD 070070029H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z DD 025051801H +$unwind$?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z DD 025051701H +$unwind$?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z DD 025052e01H 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 @@ -1028,7 +1014,7 @@ xdata SEGMENT $ip2state$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 06H DB 00H DB 00H - DB 0bcH + DB 0b8H DB 02H DB 09eH DB 00H @@ -1047,7 +1033,7 @@ $cppxdata$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035053d19H +$unwind$?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035053b19H DD 010e3313H DD 070070031H DD 05006H @@ -1074,16 +1060,6 @@ 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 @@ -1095,7 +1071,7 @@ xdata SEGMENT $ip2state$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 06H DB 00H DB 00H - DB 0bcH + DB 0b8H DB 02H DB 09eH DB 00H @@ -1114,7 +1090,7 @@ $cppxdata$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035053d19H +$unwind$?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035053b19H DD 010e3313H DD 070070031H DD 05006H @@ -1143,31 +1119,57 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z DD 025051701H +$unwind$??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z DD 025052e01H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025051301H +$unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD 025051301H +$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 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 025051301H +$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 xdata ENDS ; COMDAT xdata xdata SEGMENT @@ -1182,7 +1184,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 025051319H +$unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025052a19H DD 010e2313H DD 07007002fH DD 05006H @@ -1191,24 +1193,31 @@ $unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025051319H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025051d01H +$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025053401H 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 +$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 DD 010e2313H DD 070070029H DD 05006H - DD imagerel __GSHandlerCheck - DD 0138H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ + DD 013bH xdata ENDS ; COMDAT CONST CONST SEGMENT @@ -1227,54 +1236,49 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025051d01H +$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD 025051701H +$unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD 025052e01H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -1317,92 +1321,137 @@ 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 -$unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD 025053d19H +$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 DD 010e2313H - DD 070070021H + DD 070070025H DD 05006H - DD imagerel __GSHandlerCheck - DD 0f8H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ + DD 011bH xdata ENDS ; COMDAT CONST CONST SEGMENT -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all_locked +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all 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 +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcVarDesc DD 024H ; std::_Container_base12::_Orphan_all DD 04H - DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcName$0 + DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 ORG $+48 -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all_locked +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all DD 00H - DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc + DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035051801H +$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 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$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 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 -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H +$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 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 -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$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 DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$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 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 @@ -1412,15 +1461,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.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z _TEXT SEGMENT -_Al$ = 224 +__formal$ = 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 -; 693 : static _CONSTEXPR20_DYNALLOC void deallocate(_Alloc& _Al, const pointer _Ptr, const size_type _Count) { +; 687 : static void deallocate(_Alloc&, const pointer _Ptr, const size_type _Count) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1431,46 +1480,44 @@ $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 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 + 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 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 - 00031 48 8b d0 mov rdx, rax - 00034 48 8b 8d e8 00 + 00048 48 8b d0 mov rdx, rax + 0004b 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> + 00052 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> -; 703 : } -; 704 : } +; 690 : } - 00040 48 8d a5 c8 00 + 00057 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 + 0005e 5f pop rdi + 0005f 5d pop rbp + 00060 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.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 985 : _CONSTEXPR20_DYNALLOC void _Deallocate_plain(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { +; 998 : 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 @@ -1480,46 +1527,52 @@ $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 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 + 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 00 mov r8d, 1 - 0002a 48 8b 95 e8 00 + 00041 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00031 48 8b 8d e0 00 + 00048 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 + 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 -; 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 : } +; 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 : } - 0003e 48 8d a5 c8 00 + 00055 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 + 0005c 5f pop rdi + 0005d 5d pop rbp + 0005e 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.29.30037\include\xmemory +; 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 -; 251 : _CONSTEXPR20_DYNALLOC void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { +; 213 : void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { $LN4: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -1529,57 +1582,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 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 + 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 - 0002f 72 13 jb SHORT $LN2@Deallocate + 00046 72 13 jb SHORT $LN2@Deallocate -; 261 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); +; 217 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); - 00031 48 8d 95 e8 00 + 00048 48 8d 95 e8 00 00 00 lea rdx, QWORD PTR _Bytes$[rbp] - 00038 48 8d 8d e0 00 + 0004f 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 + 00056 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); +; 218 : } +; 219 : #endif // defined(_M_IX86) || defined(_M_X64) +; 220 : +; 221 : ::operator delete(_Ptr, _Bytes); - 00044 48 8b 95 e8 00 + 0005b 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Bytes$[rbp] - 0004b 48 8b 8d e0 00 + 00062 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 + 00069 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0006e 90 npad 1 -; 265 : } -; 266 : } +; 222 : } - 00058 48 8d a5 c8 00 + 0006f 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 + 00076 5f pop rdi + 00077 5d pop rbp + 00078 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 +; 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 @@ -1587,7 +1640,7 @@ _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 { +; 955 : void _Destroy_range(_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 @@ -1598,35 +1651,42 @@ $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 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 + 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] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 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 > _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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 998 : _CONSTEXPR20_DYNALLOC void _Delete_plain_internal(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { +; 1026 : 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 @@ -1636,32 +1696,39 @@ $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 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 + 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 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 0002b 48 8b 8d e0 00 + 00042 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 > + 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 -; 1003 : } +; 1031 : } - 00037 48 8d a5 c8 00 + 0004f 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 + 00056 5f pop rdi + 00057 5d pop rbp + 00058 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.29.30037\include\utility +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\utility ; COMDAT ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z _TEXT SEGMENT _Old_val$ = 8 @@ -1669,7 +1736,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 -; 614 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { +; 597 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -1679,49 +1746,55 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7ADD299_utility - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 615 : // assign _New_val to _Val, return previous _Val -; 616 : _Ty _Old_val = static_cast<_Ty&&>(_Val); +; 598 : // assign _New_val to _Val, return previous _Val +; 599 : _Ty _Old_val = static_cast<_Ty&&>(_Val); - 00024 48 8b 85 00 01 + 0003b 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 + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 89 45 08 mov QWORD PTR _Old_val$[rbp], rax -; 617 : _Val = static_cast<_Other&&>(_New_val); +; 600 : _Val = static_cast<_Other&&>(_New_val); - 00032 48 8b 85 00 01 + 00049 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Val$[rbp] - 00039 48 8b 8d 08 01 + 00050 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 + 00057 48 8b 09 mov rcx, QWORD PTR [rcx] + 0005a 48 89 08 mov QWORD PTR [rax], rcx -; 618 : return _Old_val; +; 601 : return _Old_val; - 00046 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] + 0005d 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] -; 619 : } +; 602 : } - 0004a 48 8d a5 e8 00 + 00061 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 + 00068 5f pop rdi + 00069 5d pop rbp + 0006a 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.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 829 : constexpr allocator(const allocator<_Other>&) noexcept {} +; 799 : constexpr allocator(const allocator<_Other>&) noexcept {} $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -1731,20 +1804,26 @@ $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 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 8d a5 c8 00 + 00042 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 + 00049 5f pop rdi + 0004a 5d pop rbp + 0004b 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:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT tv64 = 192 @@ -1766,77 +1845,83 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 287 : switch (OpType) - 0002d 8b 85 f0 00 00 + 00043 8b 85 f0 00 00 00 mov eax, DWORD PTR OpType$[rbp] - 00033 89 85 c0 00 00 + 00049 89 85 c0 00 00 00 mov DWORD PTR tv64[rbp], eax - 00039 83 bd c0 00 00 + 0004f 83 bd c0 00 00 00 00 cmp DWORD PTR tv64[rbp], 0 - 00040 74 14 je SHORT $LN4@JitiEmitWr - 00042 83 bd c0 00 00 + 00056 74 14 je SHORT $LN4@JitiEmitWr + 00058 83 bd c0 00 00 00 01 cmp DWORD PTR tv64[rbp], 1 - 00049 74 26 je SHORT $LN5@JitiEmitWr - 0004b 83 bd c0 00 00 + 0005f 74 26 je SHORT $LN5@JitiEmitWr + 00061 83 bd c0 00 00 00 02 cmp DWORD PTR tv64[rbp], 2 - 00052 74 38 je SHORT $LN6@JitiEmitWr - 00054 eb 4f jmp SHORT $LN2@JitiEmitWr + 00068 74 38 je SHORT $LN6@JitiEmitWr + 0006a eb 4f jmp SHORT $LN2@JitiEmitWr $LN4@JitiEmitWr: ; 288 : { ; 289 : case JIT_BITWISE_XOR: return JitEmitRipRelativeXorB(Block, RipDelta, Value); - 00056 44 8b 85 08 01 + 0006c 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 0005d 8b 95 00 01 00 + 00073 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00063 48 8b 8d f8 00 + 00079 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 0006a e8 00 00 00 00 call ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorB - 0006f eb 34 jmp SHORT $LN1@JitiEmitWr + 00080 e8 00 00 00 00 call ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorB + 00085 eb 34 jmp SHORT $LN1@JitiEmitWr $LN5@JitiEmitWr: ; 290 : case JIT_BITWISE_AND: return JitEmitRipRelativeAndB(Block, RipDelta, Value); - 00071 44 8b 85 08 01 + 00087 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 00078 8b 95 00 01 00 + 0008e 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 0007e 48 8b 8d f8 00 + 00094 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 00085 e8 00 00 00 00 call ?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndB - 0008a eb 19 jmp SHORT $LN1@JitiEmitWr + 0009b e8 00 00 00 00 call ?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndB + 000a0 eb 19 jmp SHORT $LN1@JitiEmitWr $LN6@JitiEmitWr: ; 291 : case JIT_BITWISE_OR: return JitEmitRipRelativeOrB(Block, RipDelta, Value); - 0008c 44 8b 85 08 01 + 000a2 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 00093 8b 95 00 01 00 + 000a9 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00099 48 8b 8d f8 00 + 000af 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 000a0 e8 00 00 00 00 call ?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrB + 000b6 e8 00 00 00 00 call ?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrB $LN2@JitiEmitWr: $LN1@JitiEmitWr: ; 292 : } ; 293 : } - 000a5 48 8d a5 d8 00 + 000bb 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 000ac 5f pop rdi - 000ad 5d pop rbp - 000ae c3 ret 0 + 000c2 5f pop rdi + 000c3 5d pop rbp + 000c4 c3 ret 0 ?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitiEmitWrapperB _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT tv64 = 192 @@ -1858,77 +1943,83 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 278 : switch (OpType) - 0002d 8b 85 f0 00 00 + 00043 8b 85 f0 00 00 00 mov eax, DWORD PTR OpType$[rbp] - 00033 89 85 c0 00 00 + 00049 89 85 c0 00 00 00 mov DWORD PTR tv64[rbp], eax - 00039 83 bd c0 00 00 + 0004f 83 bd c0 00 00 00 00 cmp DWORD PTR tv64[rbp], 0 - 00040 74 14 je SHORT $LN4@JitiEmitWr - 00042 83 bd c0 00 00 + 00056 74 14 je SHORT $LN4@JitiEmitWr + 00058 83 bd c0 00 00 00 01 cmp DWORD PTR tv64[rbp], 1 - 00049 74 26 je SHORT $LN5@JitiEmitWr - 0004b 83 bd c0 00 00 + 0005f 74 26 je SHORT $LN5@JitiEmitWr + 00061 83 bd c0 00 00 00 02 cmp DWORD PTR tv64[rbp], 2 - 00052 74 38 je SHORT $LN6@JitiEmitWr - 00054 eb 4f jmp SHORT $LN2@JitiEmitWr + 00068 74 38 je SHORT $LN6@JitiEmitWr + 0006a eb 4f jmp SHORT $LN2@JitiEmitWr $LN4@JitiEmitWr: ; 279 : { ; 280 : case JIT_BITWISE_XOR: return JitEmitRipRelativeXorW(Block, RipDelta, Value); - 00056 44 8b 85 08 01 + 0006c 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 0005d 8b 95 00 01 00 + 00073 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00063 48 8b 8d f8 00 + 00079 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 0006a e8 00 00 00 00 call ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorW - 0006f eb 34 jmp SHORT $LN1@JitiEmitWr + 00080 e8 00 00 00 00 call ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorW + 00085 eb 34 jmp SHORT $LN1@JitiEmitWr $LN5@JitiEmitWr: ; 281 : case JIT_BITWISE_AND: return JitEmitRipRelativeAndW(Block, RipDelta, Value); - 00071 44 8b 85 08 01 + 00087 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 00078 8b 95 00 01 00 + 0008e 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 0007e 48 8b 8d f8 00 + 00094 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 00085 e8 00 00 00 00 call ?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndW - 0008a eb 19 jmp SHORT $LN1@JitiEmitWr + 0009b e8 00 00 00 00 call ?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndW + 000a0 eb 19 jmp SHORT $LN1@JitiEmitWr $LN6@JitiEmitWr: ; 282 : case JIT_BITWISE_OR: return JitEmitRipRelativeOrW(Block, RipDelta, Value); - 0008c 44 8b 85 08 01 + 000a2 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 00093 8b 95 00 01 00 + 000a9 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00099 48 8b 8d f8 00 + 000af 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 000a0 e8 00 00 00 00 call ?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrW + 000b6 e8 00 00 00 00 call ?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrW $LN2@JitiEmitWr: $LN1@JitiEmitWr: ; 283 : } ; 284 : } - 000a5 48 8d a5 d8 00 + 000bb 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 000ac 5f pop rdi - 000ad 5d pop rbp - 000ae c3 ret 0 + 000c2 5f pop rdi + 000c3 5d pop rbp + 000c4 c3 ret 0 ?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitiEmitWrapperW _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT tv64 = 192 @@ -1950,77 +2041,83 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 269 : switch (OpType) - 0002d 8b 85 f0 00 00 + 00043 8b 85 f0 00 00 00 mov eax, DWORD PTR OpType$[rbp] - 00033 89 85 c0 00 00 + 00049 89 85 c0 00 00 00 mov DWORD PTR tv64[rbp], eax - 00039 83 bd c0 00 00 + 0004f 83 bd c0 00 00 00 00 cmp DWORD PTR tv64[rbp], 0 - 00040 74 14 je SHORT $LN4@JitiEmitWr - 00042 83 bd c0 00 00 + 00056 74 14 je SHORT $LN4@JitiEmitWr + 00058 83 bd c0 00 00 00 01 cmp DWORD PTR tv64[rbp], 1 - 00049 74 26 je SHORT $LN5@JitiEmitWr - 0004b 83 bd c0 00 00 + 0005f 74 26 je SHORT $LN5@JitiEmitWr + 00061 83 bd c0 00 00 00 02 cmp DWORD PTR tv64[rbp], 2 - 00052 74 38 je SHORT $LN6@JitiEmitWr - 00054 eb 4f jmp SHORT $LN2@JitiEmitWr + 00068 74 38 je SHORT $LN6@JitiEmitWr + 0006a eb 4f jmp SHORT $LN2@JitiEmitWr $LN4@JitiEmitWr: ; 270 : { ; 271 : case JIT_BITWISE_XOR: return JitEmitRipRelativeXorD(Block, RipDelta, Value); - 00056 44 8b 85 08 01 + 0006c 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 0005d 8b 95 00 01 00 + 00073 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00063 48 8b 8d f8 00 + 00079 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 0006a e8 00 00 00 00 call ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorD - 0006f eb 34 jmp SHORT $LN1@JitiEmitWr + 00080 e8 00 00 00 00 call ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeXorD + 00085 eb 34 jmp SHORT $LN1@JitiEmitWr $LN5@JitiEmitWr: ; 272 : case JIT_BITWISE_AND: return JitEmitRipRelativeAndD(Block, RipDelta, Value); - 00071 44 8b 85 08 01 + 00087 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 00078 8b 95 00 01 00 + 0008e 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 0007e 48 8b 8d f8 00 + 00094 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 00085 e8 00 00 00 00 call ?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndD - 0008a eb 19 jmp SHORT $LN1@JitiEmitWr + 0009b e8 00 00 00 00 call ?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeAndD + 000a0 eb 19 jmp SHORT $LN1@JitiEmitWr $LN6@JitiEmitWr: ; 273 : case JIT_BITWISE_OR: return JitEmitRipRelativeOrD(Block, RipDelta, Value); - 0008c 44 8b 85 08 01 + 000a2 44 8b 85 08 01 00 00 mov r8d, DWORD PTR Value$[rbp] - 00093 8b 95 00 01 00 + 000a9 8b 95 00 01 00 00 mov edx, DWORD PTR RipDelta$[rbp] - 00099 48 8b 8d f8 00 + 000af 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 000a0 e8 00 00 00 00 call ?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrD + 000b6 e8 00 00 00 00 call ?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitEmitRipRelativeOrD $LN2@JitiEmitWr: $LN1@JitiEmitWr: ; 274 : } ; 275 : } - 000a5 48 8d a5 d8 00 + 000bb 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 000ac 5f pop rdi - 000ad 5d pop rbp - 000ae c3 ret 0 + 000c2 5f pop rdi + 000c3 5d pop rbp + 000c4 c3 ret 0 ?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitiEmitWrapperD _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\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 @@ -2063,399 +2160,405 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 371 : ULONG FourByte = Link->RawDataSize / 4; - 0002e 33 d2 xor edx, edx - 00030 48 8b 85 c0 02 + 00045 33 d2 xor edx, edx + 00047 48 8b 85 c0 02 00 00 mov rax, QWORD PTR Link$[rbp] - 00037 8b 40 28 mov eax, DWORD PTR [rax+40] - 0003a b9 04 00 00 00 mov ecx, 4 - 0003f f7 f1 div ecx - 00041 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 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 ; 372 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; - 00044 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00047 c1 e0 02 shl eax, 2 - 0004a 48 8b 8d c0 02 + 0005b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0005e c1 e0 02 shl eax, 2 + 00061 48 8b 8d c0 02 00 00 mov rcx, QWORD PTR Link$[rbp] - 00051 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00054 2b c8 sub ecx, eax - 00056 8b c1 mov eax, ecx - 00058 33 d2 xor edx, edx - 0005a b9 02 00 00 00 mov ecx, 2 - 0005f f7 f1 div ecx - 00061 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + 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 ; 373 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); - 00064 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00067 c1 e0 02 shl eax, 2 - 0006a 48 8b 8d c0 02 + 0007b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0007e c1 e0 02 shl eax, 2 + 00081 48 8b 8d c0 02 00 00 mov rcx, QWORD PTR Link$[rbp] - 00071 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00074 2b c8 sub ecx, eax - 00076 8b c1 mov eax, ecx - 00078 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 0007b d1 e1 shl ecx, 1 - 0007d 2b c1 sub eax, ecx - 0007f 89 45 44 mov DWORD PTR OneByte$[rbp], eax + 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 ; 374 : ; 375 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; - 00082 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 00087 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 0008c 48 89 85 e8 01 + 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 00 00 mov QWORD PTR $T5[rbp], rax - 00093 48 83 bd e8 01 + 000aa 48 83 bd e8 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0009b 74 15 je SHORT $LN16@JitEmitPos - 0009d 48 8b 8d e8 01 + 000b2 74 15 je SHORT $LN16@JitEmitPos + 000b4 48 8b 8d e8 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000a4 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 000a9 48 89 85 98 02 + 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 00 00 mov QWORD PTR tv86[rbp], rax - 000b0 eb 0b jmp SHORT $LN17@JitEmitPos + 000c7 eb 0b jmp SHORT $LN17@JitEmitPos $LN16@JitEmitPos: - 000b2 48 c7 85 98 02 + 000c9 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv86[rbp], 0 $LN17@JitEmitPos: - 000bd 48 8b 85 98 02 + 000d4 48 8b 85 98 02 00 00 mov rax, QWORD PTR tv86[rbp] - 000c4 48 89 85 c8 01 + 000db 48 89 85 c8 01 00 00 mov QWORD PTR $T4[rbp], rax - 000cb 48 8b 85 c8 01 + 000e2 48 8b 85 c8 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000d2 48 89 45 68 mov QWORD PTR Block$[rbp], rax + 000e9 48 89 45 68 mov QWORD PTR Block$[rbp], rax ; 376 : if (!Block) - 000d6 48 83 7d 68 00 cmp QWORD PTR Block$[rbp], 0 - 000db 75 07 jne SHORT $LN4@JitEmitPos + 000ed 48 83 7d 68 00 cmp QWORD PTR Block$[rbp], 0 + 000f2 75 07 jne SHORT $LN4@JitEmitPos ; 377 : return NULL; - 000dd 33 c0 xor eax, eax - 000df e9 ed 03 00 00 jmp $LN1@JitEmitPos + 000f4 33 c0 xor eax, eax + 000f6 e9 ed 03 00 00 jmp $LN1@JitEmitPos $LN4@JitEmitPos: ; 378 : ; 379 : if (SaveFlags && !JitEmitPushfqInst(Block)) - 000e4 83 bd d8 02 00 + 000fb 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 000eb 74 57 je SHORT $LN5@JitEmitPos - 000ed 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 000f1 e8 00 00 00 00 call ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPushfqInst - 000f6 85 c0 test eax, eax - 000f8 75 4a jne SHORT $LN5@JitEmitPos + 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 ; 380 : { ; 381 : NcDeleteBlock(Block); - 000fa 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 000fe e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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 ; 382 : delete Block; - 00103 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00107 48 89 85 08 02 + 0011a 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0011e 48 89 85 08 02 00 00 mov QWORD PTR $T6[rbp], rax - 0010e 48 83 bd 08 02 + 00125 48 83 bd 08 02 00 00 00 cmp QWORD PTR $T6[rbp], 0 - 00116 74 1a je SHORT $LN18@JitEmitPos - 00118 ba 01 00 00 00 mov edx, 1 - 0011d 48 8b 8d 08 02 + 0012d 74 1a je SHORT $LN18@JitEmitPos + 0012f ba 01 00 00 00 mov edx, 1 + 00134 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR $T6[rbp] - 00124 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00129 48 89 85 98 02 + 0013b e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00140 48 89 85 98 02 00 00 mov QWORD PTR tv128[rbp], rax - 00130 eb 0b jmp SHORT $LN19@JitEmitPos + 00147 eb 0b jmp SHORT $LN19@JitEmitPos $LN18@JitEmitPos: - 00132 48 c7 85 98 02 + 00149 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv128[rbp], 0 $LN19@JitEmitPos: ; 383 : return NULL; - 0013d 33 c0 xor eax, eax - 0013f e9 8d 03 00 00 jmp $LN1@JitEmitPos + 00154 33 c0 xor eax, eax + 00156 e9 8d 03 00 00 jmp $LN1@JitEmitPos $LN5@JitEmitPos: ; 384 : } ; 385 : ; 386 : ULONG Count = FourByte; - 00144 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00147 89 85 84 00 00 + 0015b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0015e 89 85 84 00 00 00 mov DWORD PTR Count$[rbp], eax $LN2@JitEmitPos: ; 387 : while (Count) - 0014d 83 bd 84 00 00 + 00164 83 bd 84 00 00 00 00 cmp DWORD PTR Count$[rbp], 0 - 00154 0f 84 11 01 00 + 0016b 0f 84 11 01 00 00 je $LN3@JitEmitPos ; 388 : { ; 389 : INT32 RipDelta = Link->RawDataSize - ((FourByte - Count) * 4); - 0015a 8b 85 84 00 00 + 00171 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00160 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 00163 2b c8 sub ecx, eax - 00165 8b c1 mov eax, ecx - 00167 c1 e0 02 shl eax, 2 - 0016a 48 8b 8d c0 02 + 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 00 00 mov rcx, QWORD PTR Link$[rbp] - 00171 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00174 2b c8 sub ecx, eax - 00176 8b c1 mov eax, ecx - 00178 89 85 a4 00 00 + 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 00 mov DWORD PTR RipDelta$1[rbp], eax ; 390 : if (SaveFlags) - 0017e 83 bd d8 02 00 + 00195 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 00185 74 0e je SHORT $LN6@JitEmitPos + 0019c 74 0e je SHORT $LN6@JitEmitPos ; 391 : RipDelta += 1; - 00187 8b 85 a4 00 00 + 0019e 8b 85 a4 00 00 00 mov eax, DWORD PTR RipDelta$1[rbp] - 0018d ff c0 inc eax - 0018f 89 85 a4 00 00 + 001a4 ff c0 inc eax + 001a6 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax $LN6@JitEmitPos: ; 392 : RipDelta += (FourByte - (Count - 1)) * DWORD_RIP_INST_LENGTH; - 00195 8b 85 84 00 00 + 001ac 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 0019b ff c8 dec eax - 0019d 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 001a0 2b c8 sub ecx, eax - 001a2 8b c1 mov eax, ecx - 001a4 6b c0 0a imul eax, eax, 10 - 001a7 8b 8d a4 00 00 + 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 00 mov ecx, DWORD PTR RipDelta$1[rbp] - 001ad 03 c8 add ecx, eax - 001af 8b c1 mov eax, ecx - 001b1 89 85 a4 00 00 + 001c4 03 c8 add ecx, eax + 001c6 8b c1 mov eax, ecx + 001c8 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 393 : RipDelta *= (-1); - 001b7 6b 85 a4 00 00 + 001ce 6b 85 a4 00 00 00 ff imul eax, DWORD PTR RipDelta$1[rbp], -1 - 001be 89 85 a4 00 00 + 001d5 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 394 : RipDelta += Delta; - 001c4 8b 85 e0 02 00 + 001db 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 001ca 8b 8d a4 00 00 + 001e1 8b 8d a4 00 00 00 mov ecx, DWORD PTR RipDelta$1[rbp] - 001d0 03 c8 add ecx, eax - 001d2 8b c1 mov eax, ecx - 001d4 89 85 a4 00 00 + 001e7 03 c8 add ecx, eax + 001e9 8b c1 mov eax, ecx + 001eb 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 395 : if (!JitiEmitWrapperD(OpType, Block, RipDelta, JitData->Data[FourByte - Count])) - 001da 8b 85 84 00 00 + 001f1 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 001e0 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 001e3 2b c8 sub ecx, eax - 001e5 8b c1 mov eax, ecx - 001e7 8b c0 mov eax, eax - 001e9 48 8b 8d c8 02 + 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 00 00 mov rcx, QWORD PTR JitData$[rbp] - 001f0 44 8b 0c 81 mov r9d, DWORD PTR [rcx+rax*4] - 001f4 44 8b 85 a4 00 + 00207 44 8b 0c 81 mov r9d, DWORD PTR [rcx+rax*4] + 0020b 44 8b 85 a4 00 00 00 mov r8d, DWORD PTR RipDelta$1[rbp] - 001fb 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 001ff 8b 8d d0 02 00 + 00212 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 00216 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 00205 e8 00 00 00 00 call ?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperD - 0020a 85 c0 test eax, eax - 0020c 75 4a jne SHORT $LN7@JitEmitPos + 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 ; 396 : { ; 397 : NcDeleteBlock(Block); - 0020e 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00212 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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 ; 398 : delete Block; - 00217 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0021b 48 89 85 28 02 + 0022e 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00232 48 89 85 28 02 00 00 mov QWORD PTR $T7[rbp], rax - 00222 48 83 bd 28 02 + 00239 48 83 bd 28 02 00 00 00 cmp QWORD PTR $T7[rbp], 0 - 0022a 74 1a je SHORT $LN20@JitEmitPos - 0022c ba 01 00 00 00 mov edx, 1 - 00231 48 8b 8d 28 02 + 00241 74 1a je SHORT $LN20@JitEmitPos + 00243 ba 01 00 00 00 mov edx, 1 + 00248 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR $T7[rbp] - 00238 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 0023d 48 89 85 98 02 + 0024f e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00254 48 89 85 98 02 00 00 mov QWORD PTR tv158[rbp], rax - 00244 eb 0b jmp SHORT $LN21@JitEmitPos + 0025b eb 0b jmp SHORT $LN21@JitEmitPos $LN20@JitEmitPos: - 00246 48 c7 85 98 02 + 0025d 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv158[rbp], 0 $LN21@JitEmitPos: ; 399 : return NULL; - 00251 33 c0 xor eax, eax - 00253 e9 79 02 00 00 jmp $LN1@JitEmitPos + 00268 33 c0 xor eax, eax + 0026a e9 79 02 00 00 jmp $LN1@JitEmitPos $LN7@JitEmitPos: ; 400 : } ; 401 : --Count; - 00258 8b 85 84 00 00 + 0026f 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 0025e ff c8 dec eax - 00260 89 85 84 00 00 + 00275 ff c8 dec eax + 00277 89 85 84 00 00 00 mov DWORD PTR Count$[rbp], eax ; 402 : } - 00266 e9 e2 fe ff ff jmp $LN2@JitEmitPos + 0027d e9 e2 fe ff ff jmp $LN2@JitEmitPos $LN3@JitEmitPos: ; 403 : ; 404 : if (TwoByte) - 0026b 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 - 0026f 0f 84 ef 00 00 + 00282 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 + 00286 0f 84 ef 00 00 00 je $LN8@JitEmitPos ; 405 : { ; 406 : INT32 RipDelta = Link->RawDataSize - (FourByte * 4); - 00275 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00278 c1 e0 02 shl eax, 2 - 0027b 48 8b 8d c0 02 + 0028c 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0028f c1 e0 02 shl eax, 2 + 00292 48 8b 8d c0 02 00 00 mov rcx, QWORD PTR Link$[rbp] - 00282 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00285 2b c8 sub ecx, eax - 00287 8b c1 mov eax, ecx - 00289 89 85 c4 00 00 + 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 00 mov DWORD PTR RipDelta$2[rbp], eax ; 407 : if (SaveFlags) - 0028f 83 bd d8 02 00 + 002a6 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 00296 74 0e je SHORT $LN9@JitEmitPos + 002ad 74 0e je SHORT $LN9@JitEmitPos ; 408 : RipDelta += 1; - 00298 8b 85 c4 00 00 + 002af 8b 85 c4 00 00 00 mov eax, DWORD PTR RipDelta$2[rbp] - 0029e ff c0 inc eax - 002a0 89 85 c4 00 00 + 002b5 ff c0 inc eax + 002b7 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax $LN9@JitEmitPos: ; 409 : RipDelta += (FourByte * DWORD_RIP_INST_LENGTH); - 002a6 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 - 002aa 8b 8d c4 00 00 + 002bd 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 + 002c1 8b 8d c4 00 00 00 mov ecx, DWORD PTR RipDelta$2[rbp] - 002b0 03 c8 add ecx, eax - 002b2 8b c1 mov eax, ecx - 002b4 89 85 c4 00 00 + 002c7 03 c8 add ecx, eax + 002c9 8b c1 mov eax, ecx + 002cb 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 410 : RipDelta += WORD_RIP_INST_LENGTH; - 002ba 8b 85 c4 00 00 + 002d1 8b 85 c4 00 00 00 mov eax, DWORD PTR RipDelta$2[rbp] - 002c0 83 c0 09 add eax, 9 - 002c3 89 85 c4 00 00 + 002d7 83 c0 09 add eax, 9 + 002da 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 411 : RipDelta *= (-1); - 002c9 6b 85 c4 00 00 + 002e0 6b 85 c4 00 00 00 ff imul eax, DWORD PTR RipDelta$2[rbp], -1 - 002d0 89 85 c4 00 00 + 002e7 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 412 : RipDelta += Delta; - 002d6 8b 85 e0 02 00 + 002ed 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 002dc 8b 8d c4 00 00 + 002f3 8b 8d c4 00 00 00 mov ecx, DWORD PTR RipDelta$2[rbp] - 002e2 03 c8 add ecx, eax - 002e4 8b c1 mov eax, ecx - 002e6 89 85 c4 00 00 + 002f9 03 c8 add ecx, eax + 002fb 8b c1 mov eax, ecx + 002fd 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 413 : if (!JitiEmitWrapperW(OpType, Block, RipDelta, JitData->Data[3])) - 002ec b8 04 00 00 00 mov eax, 4 - 002f1 48 6b c0 03 imul rax, rax, 3 - 002f5 48 8b 8d c8 02 + 00303 b8 04 00 00 00 mov eax, 4 + 00308 48 6b c0 03 imul rax, rax, 3 + 0030c 48 8b 8d c8 02 00 00 mov rcx, QWORD PTR JitData$[rbp] - 002fc 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] - 00300 44 8b 85 c4 00 + 00313 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] + 00317 44 8b 85 c4 00 00 00 mov r8d, DWORD PTR RipDelta$2[rbp] - 00307 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 0030b 8b 8d d0 02 00 + 0031e 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 00322 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 00311 e8 00 00 00 00 call ?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperW - 00316 85 c0 test eax, eax - 00318 75 4a jne SHORT $LN8@JitEmitPos + 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 ; 414 : { ; 415 : NcDeleteBlock(Block); - 0031a 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0031e e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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 ; 416 : delete Block; - 00323 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00327 48 89 85 48 02 + 0033a 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0033e 48 89 85 48 02 00 00 mov QWORD PTR $T8[rbp], rax - 0032e 48 83 bd 48 02 + 00345 48 83 bd 48 02 00 00 00 cmp QWORD PTR $T8[rbp], 0 - 00336 74 1a je SHORT $LN22@JitEmitPos - 00338 ba 01 00 00 00 mov edx, 1 - 0033d 48 8b 8d 48 02 + 0034d 74 1a je SHORT $LN22@JitEmitPos + 0034f ba 01 00 00 00 mov edx, 1 + 00354 48 8b 8d 48 02 00 00 mov rcx, QWORD PTR $T8[rbp] - 00344 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00349 48 89 85 98 02 + 0035b e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00360 48 89 85 98 02 00 00 mov QWORD PTR tv185[rbp], rax - 00350 eb 0b jmp SHORT $LN23@JitEmitPos + 00367 eb 0b jmp SHORT $LN23@JitEmitPos $LN22@JitEmitPos: - 00352 48 c7 85 98 02 + 00369 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv185[rbp], 0 $LN23@JitEmitPos: ; 417 : return NULL; - 0035d 33 c0 xor eax, eax - 0035f e9 6d 01 00 00 jmp $LN1@JitEmitPos + 00374 33 c0 xor eax, eax + 00376 e9 6d 01 00 00 jmp $LN1@JitEmitPos $LN8@JitEmitPos: ; 418 : } @@ -2463,132 +2566,132 @@ $LN8@JitEmitPos: ; 420 : ; 421 : if (OneByte) - 00364 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 - 00368 0f 84 02 01 00 + 0037b 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 + 0037f 0f 84 02 01 00 00 je $LN11@JitEmitPos ; 422 : { ; 423 : INT32 RipDelta = Link->RawDataSize - (FourByte * 4) - (TwoByte * 2); - 0036e 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00371 c1 e0 02 shl eax, 2 - 00374 48 8b 8d c0 02 + 00385 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00388 c1 e0 02 shl eax, 2 + 0038b 48 8b 8d c0 02 00 00 mov rcx, QWORD PTR Link$[rbp] - 0037b 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 0037e 2b c8 sub ecx, eax - 00380 8b c1 mov eax, ecx - 00382 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00385 d1 e1 shl ecx, 1 - 00387 2b c1 sub eax, ecx - 00389 89 85 e4 00 00 + 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 00 mov DWORD PTR RipDelta$3[rbp], eax ; 424 : if (SaveFlags) - 0038f 83 bd d8 02 00 + 003a6 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 00396 74 0e je SHORT $LN12@JitEmitPos + 003ad 74 0e je SHORT $LN12@JitEmitPos ; 425 : RipDelta += 1; - 00398 8b 85 e4 00 00 + 003af 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 0039e ff c0 inc eax - 003a0 89 85 e4 00 00 + 003b5 ff c0 inc eax + 003b7 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax $LN12@JitEmitPos: ; 426 : RipDelta += (FourByte * DWORD_RIP_INST_LENGTH); - 003a6 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 - 003aa 8b 8d e4 00 00 + 003bd 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 + 003c1 8b 8d e4 00 00 00 mov ecx, DWORD PTR RipDelta$3[rbp] - 003b0 03 c8 add ecx, eax - 003b2 8b c1 mov eax, ecx - 003b4 89 85 e4 00 00 + 003c7 03 c8 add ecx, eax + 003c9 8b c1 mov eax, ecx + 003cb 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 427 : RipDelta += WORD_RIP_INST_LENGTH; - 003ba 8b 85 e4 00 00 + 003d1 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 003c0 83 c0 09 add eax, 9 - 003c3 89 85 e4 00 00 + 003d7 83 c0 09 add eax, 9 + 003da 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 428 : RipDelta += BYTE_RIP_INST_LENGTH; - 003c9 8b 85 e4 00 00 + 003e0 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 003cf 83 c0 07 add eax, 7 - 003d2 89 85 e4 00 00 + 003e6 83 c0 07 add eax, 7 + 003e9 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 429 : RipDelta *= (-1); - 003d8 6b 85 e4 00 00 + 003ef 6b 85 e4 00 00 00 ff imul eax, DWORD PTR RipDelta$3[rbp], -1 - 003df 89 85 e4 00 00 + 003f6 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 430 : RipDelta += Delta; - 003e5 8b 85 e0 02 00 + 003fc 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 003eb 8b 8d e4 00 00 + 00402 8b 8d e4 00 00 00 mov ecx, DWORD PTR RipDelta$3[rbp] - 003f1 03 c8 add ecx, eax - 003f3 8b c1 mov eax, ecx - 003f5 89 85 e4 00 00 + 00408 03 c8 add ecx, eax + 0040a 8b c1 mov eax, ecx + 0040c 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 431 : if (!JitiEmitWrapperB(OpType, Block, RipDelta, JitData->Data[4])) - 003fb b8 04 00 00 00 mov eax, 4 - 00400 48 6b c0 04 imul rax, rax, 4 - 00404 48 8b 8d c8 02 + 00412 b8 04 00 00 00 mov eax, 4 + 00417 48 6b c0 04 imul rax, rax, 4 + 0041b 48 8b 8d c8 02 00 00 mov rcx, QWORD PTR JitData$[rbp] - 0040b 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] - 0040f 44 8b 85 e4 00 + 00422 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] + 00426 44 8b 85 e4 00 00 00 mov r8d, DWORD PTR RipDelta$3[rbp] - 00416 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 0041a 8b 8d d0 02 00 + 0042d 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 00431 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 00420 e8 00 00 00 00 call ?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperB - 00425 85 c0 test eax, eax - 00427 75 47 jne SHORT $LN11@JitEmitPos + 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 ; 432 : { ; 433 : NcDeleteBlock(Block); - 00429 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0042d e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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 ; 434 : delete Block; - 00432 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00436 48 89 85 68 02 + 00449 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0044d 48 89 85 68 02 00 00 mov QWORD PTR $T9[rbp], rax - 0043d 48 83 bd 68 02 + 00454 48 83 bd 68 02 00 00 00 cmp QWORD PTR $T9[rbp], 0 - 00445 74 1a je SHORT $LN24@JitEmitPos - 00447 ba 01 00 00 00 mov edx, 1 - 0044c 48 8b 8d 68 02 + 0045c 74 1a je SHORT $LN24@JitEmitPos + 0045e ba 01 00 00 00 mov edx, 1 + 00463 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR $T9[rbp] - 00453 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00458 48 89 85 98 02 + 0046a e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 0046f 48 89 85 98 02 00 00 mov QWORD PTR tv214[rbp], rax - 0045f eb 0b jmp SHORT $LN25@JitEmitPos + 00476 eb 0b jmp SHORT $LN25@JitEmitPos $LN24@JitEmitPos: - 00461 48 c7 85 98 02 + 00478 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv214[rbp], 0 $LN25@JitEmitPos: ; 435 : return NULL; - 0046c 33 c0 xor eax, eax - 0046e eb 61 jmp SHORT $LN1@JitEmitPos + 00483 33 c0 xor eax, eax + 00485 eb 61 jmp SHORT $LN1@JitEmitPos $LN11@JitEmitPos: ; 436 : } @@ -2596,61 +2699,61 @@ $LN11@JitEmitPos: ; 438 : ; 439 : if (SaveFlags && !JitEmitPopfqInst(Block)) - 00470 83 bd d8 02 00 + 00487 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 00477 74 54 je SHORT $LN14@JitEmitPos - 00479 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0047d e8 00 00 00 00 call ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPopfqInst - 00482 85 c0 test eax, eax - 00484 75 47 jne SHORT $LN14@JitEmitPos + 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 ; 440 : { ; 441 : NcDeleteBlock(Block); - 00486 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0048a e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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 ; 442 : delete Block; - 0048f 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00493 48 89 85 88 02 + 004a6 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 004aa 48 89 85 88 02 00 00 mov QWORD PTR $T10[rbp], rax - 0049a 48 83 bd 88 02 + 004b1 48 83 bd 88 02 00 00 00 cmp QWORD PTR $T10[rbp], 0 - 004a2 74 1a je SHORT $LN26@JitEmitPos - 004a4 ba 01 00 00 00 mov edx, 1 - 004a9 48 8b 8d 88 02 + 004b9 74 1a je SHORT $LN26@JitEmitPos + 004bb ba 01 00 00 00 mov edx, 1 + 004c0 48 8b 8d 88 02 00 00 mov rcx, QWORD PTR $T10[rbp] - 004b0 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 004b5 48 89 85 98 02 + 004c7 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 004cc 48 89 85 98 02 00 00 mov QWORD PTR tv224[rbp], rax - 004bc eb 0b jmp SHORT $LN27@JitEmitPos + 004d3 eb 0b jmp SHORT $LN27@JitEmitPos $LN26@JitEmitPos: - 004be 48 c7 85 98 02 + 004d5 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv224[rbp], 0 $LN27@JitEmitPos: ; 443 : return NULL; - 004c9 33 c0 xor eax, eax - 004cb eb 04 jmp SHORT $LN1@JitEmitPos + 004e0 33 c0 xor eax, eax + 004e2 eb 04 jmp SHORT $LN1@JitEmitPos $LN14@JitEmitPos: ; 444 : } ; 445 : ; 446 : return Block; - 004cd 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 004e4 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] $LN1@JitEmitPos: ; 447 : } - 004d1 48 8d a5 a8 02 + 004e8 48 8d a5 a8 02 00 00 lea rsp, QWORD PTR [rbp+680] - 004d8 5f pop rdi - 004d9 5d pop rbp - 004da c3 ret 0 + 004ef 5f pop rdi + 004f0 5d pop rbp + 004f1 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 @@ -2745,7 +2848,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:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\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 @@ -2788,364 +2891,370 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 297 : ULONG FourByte = Link->RawDataSize / 4; - 0002e 33 d2 xor edx, edx - 00030 48 8b 85 c0 02 + 00045 33 d2 xor edx, edx + 00047 48 8b 85 c0 02 00 00 mov rax, QWORD PTR Link$[rbp] - 00037 8b 40 28 mov eax, DWORD PTR [rax+40] - 0003a b9 04 00 00 00 mov ecx, 4 - 0003f f7 f1 div ecx - 00041 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 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 ; 298 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; - 00044 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00047 c1 e0 02 shl eax, 2 - 0004a 48 8b 8d c0 02 + 0005b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0005e c1 e0 02 shl eax, 2 + 00061 48 8b 8d c0 02 00 00 mov rcx, QWORD PTR Link$[rbp] - 00051 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00054 2b c8 sub ecx, eax - 00056 8b c1 mov eax, ecx - 00058 33 d2 xor edx, edx - 0005a b9 02 00 00 00 mov ecx, 2 - 0005f f7 f1 div ecx - 00061 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + 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 ; 299 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); - 00064 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00067 c1 e0 02 shl eax, 2 - 0006a 48 8b 8d c0 02 + 0007b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0007e c1 e0 02 shl eax, 2 + 00081 48 8b 8d c0 02 00 00 mov rcx, QWORD PTR Link$[rbp] - 00071 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00074 2b c8 sub ecx, eax - 00076 8b c1 mov eax, ecx - 00078 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 0007b 03 c9 add ecx, ecx - 0007d 2b c1 sub eax, ecx - 0007f 89 45 44 mov DWORD PTR OneByte$[rbp], eax + 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 ; 300 : ; 301 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; - 00082 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 00087 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 0008c 48 89 85 e8 01 + 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 00 00 mov QWORD PTR $T5[rbp], rax - 00093 48 83 bd e8 01 + 000aa 48 83 bd e8 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0009b 74 15 je SHORT $LN16@JitEmitPre - 0009d 48 8b 8d e8 01 + 000b2 74 15 je SHORT $LN16@JitEmitPre + 000b4 48 8b 8d e8 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 000a4 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 000a9 48 89 85 98 02 + 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 00 00 mov QWORD PTR tv86[rbp], rax - 000b0 eb 0b jmp SHORT $LN17@JitEmitPre + 000c7 eb 0b jmp SHORT $LN17@JitEmitPre $LN16@JitEmitPre: - 000b2 48 c7 85 98 02 + 000c9 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv86[rbp], 0 $LN17@JitEmitPre: - 000bd 48 8b 85 98 02 + 000d4 48 8b 85 98 02 00 00 mov rax, QWORD PTR tv86[rbp] - 000c4 48 89 85 c8 01 + 000db 48 89 85 c8 01 00 00 mov QWORD PTR $T4[rbp], rax - 000cb 48 8b 85 c8 01 + 000e2 48 8b 85 c8 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000d2 48 89 45 68 mov QWORD PTR Block$[rbp], rax + 000e9 48 89 45 68 mov QWORD PTR Block$[rbp], rax ; 302 : if (!Block) - 000d6 48 83 7d 68 00 cmp QWORD PTR Block$[rbp], 0 - 000db 75 07 jne SHORT $LN4@JitEmitPre + 000ed 48 83 7d 68 00 cmp QWORD PTR Block$[rbp], 0 + 000f2 75 07 jne SHORT $LN4@JitEmitPre ; 303 : return NULL; - 000dd 33 c0 xor eax, eax - 000df e9 67 03 00 00 jmp $LN1@JitEmitPre + 000f4 33 c0 xor eax, eax + 000f6 e9 67 03 00 00 jmp $LN1@JitEmitPre $LN4@JitEmitPre: ; 304 : ; 305 : if (SaveFlags && !JitEmitPushfqInst(Block)) - 000e4 83 bd d8 02 00 + 000fb 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 000eb 74 57 je SHORT $LN5@JitEmitPre - 000ed 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 000f1 e8 00 00 00 00 call ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPushfqInst - 000f6 85 c0 test eax, eax - 000f8 75 4a jne SHORT $LN5@JitEmitPre + 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 ; 306 : { ; 307 : NcDeleteBlock(Block); - 000fa 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 000fe e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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 ; 308 : delete Block; - 00103 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00107 48 89 85 08 02 + 0011a 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0011e 48 89 85 08 02 00 00 mov QWORD PTR $T6[rbp], rax - 0010e 48 83 bd 08 02 + 00125 48 83 bd 08 02 00 00 00 cmp QWORD PTR $T6[rbp], 0 - 00116 74 1a je SHORT $LN18@JitEmitPre - 00118 ba 01 00 00 00 mov edx, 1 - 0011d 48 8b 8d 08 02 + 0012d 74 1a je SHORT $LN18@JitEmitPre + 0012f ba 01 00 00 00 mov edx, 1 + 00134 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR $T6[rbp] - 00124 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00129 48 89 85 98 02 + 0013b e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00140 48 89 85 98 02 00 00 mov QWORD PTR tv128[rbp], rax - 00130 eb 0b jmp SHORT $LN19@JitEmitPre + 00147 eb 0b jmp SHORT $LN19@JitEmitPre $LN18@JitEmitPre: - 00132 48 c7 85 98 02 + 00149 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv128[rbp], 0 $LN19@JitEmitPre: ; 309 : return NULL; - 0013d 33 c0 xor eax, eax - 0013f e9 07 03 00 00 jmp $LN1@JitEmitPre + 00154 33 c0 xor eax, eax + 00156 e9 07 03 00 00 jmp $LN1@JitEmitPre $LN5@JitEmitPre: ; 310 : } ; 311 : ; 312 : ULONG Count = FourByte; - 00144 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00147 89 85 84 00 00 + 0015b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0015e 89 85 84 00 00 00 mov DWORD PTR Count$[rbp], eax $LN2@JitEmitPre: ; 313 : while (Count) - 0014d 83 bd 84 00 00 + 00164 83 bd 84 00 00 00 00 cmp DWORD PTR Count$[rbp], 0 - 00154 0f 84 f7 00 00 + 0016b 0f 84 f7 00 00 00 je $LN3@JitEmitPre ; 314 : { ; 315 : INT32 RipDelta = (((Count - 1) * DWORD_RIP_INST_LENGTH) + (TwoByte * WORD_RIP_INST_LENGTH) + (OneByte * BYTE_RIP_INST_LENGTH)); - 0015a 8b 85 84 00 00 + 00171 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00160 ff c8 dec eax - 00162 6b c0 0a imul eax, eax, 10 - 00165 6b 4d 24 09 imul ecx, DWORD PTR TwoByte$[rbp], 9 - 00169 03 c1 add eax, ecx - 0016b 6b 4d 44 07 imul ecx, DWORD PTR OneByte$[rbp], 7 - 0016f 03 c1 add eax, ecx - 00171 89 85 a4 00 00 + 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 00 mov DWORD PTR RipDelta$1[rbp], eax ; 316 : if (SaveFlags) - 00177 83 bd d8 02 00 + 0018e 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 0017e 74 0e je SHORT $LN6@JitEmitPre + 00195 74 0e je SHORT $LN6@JitEmitPre ; 317 : RipDelta += 1; - 00180 8b 85 a4 00 00 + 00197 8b 85 a4 00 00 00 mov eax, DWORD PTR RipDelta$1[rbp] - 00186 ff c0 inc eax - 00188 89 85 a4 00 00 + 0019d ff c0 inc eax + 0019f 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax $LN6@JitEmitPre: ; 318 : RipDelta += ((FourByte - Count) * 4); - 0018e 8b 85 84 00 00 + 001a5 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00194 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 00197 2b c8 sub ecx, eax - 00199 8b c1 mov eax, ecx - 0019b 8b 8d a4 00 00 + 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 00 mov ecx, DWORD PTR RipDelta$1[rbp] - 001a1 8d 04 81 lea eax, DWORD PTR [rcx+rax*4] - 001a4 89 85 a4 00 00 + 001b8 8d 04 81 lea eax, DWORD PTR [rcx+rax*4] + 001bb 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 319 : RipDelta += Delta; - 001aa 8b 85 e0 02 00 + 001c1 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 001b0 8b 8d a4 00 00 + 001c7 8b 8d a4 00 00 00 mov ecx, DWORD PTR RipDelta$1[rbp] - 001b6 03 c8 add ecx, eax - 001b8 8b c1 mov eax, ecx - 001ba 89 85 a4 00 00 + 001cd 03 c8 add ecx, eax + 001cf 8b c1 mov eax, ecx + 001d1 89 85 a4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 320 : if (!JitiEmitWrapperD(OpType, Block, RipDelta, JitData->Data[FourByte - Count])) - 001c0 8b 85 84 00 00 + 001d7 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 001c6 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 001c9 2b c8 sub ecx, eax - 001cb 8b c1 mov eax, ecx - 001cd 8b c0 mov eax, eax - 001cf 48 8b 8d c8 02 + 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 00 00 mov rcx, QWORD PTR JitData$[rbp] - 001d6 44 8b 0c 81 mov r9d, DWORD PTR [rcx+rax*4] - 001da 44 8b 85 a4 00 + 001ed 44 8b 0c 81 mov r9d, DWORD PTR [rcx+rax*4] + 001f1 44 8b 85 a4 00 00 00 mov r8d, DWORD PTR RipDelta$1[rbp] - 001e1 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 001e5 8b 8d d0 02 00 + 001f8 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 001fc 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 001eb e8 00 00 00 00 call ?JitiEmitWrapperD@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperD - 001f0 85 c0 test eax, eax - 001f2 75 4a jne SHORT $LN7@JitEmitPre + 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 ; 321 : { ; 322 : NcDeleteBlock(Block); - 001f4 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 001f8 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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 ; 323 : delete Block; - 001fd 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00201 48 89 85 28 02 + 00214 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00218 48 89 85 28 02 00 00 mov QWORD PTR $T7[rbp], rax - 00208 48 83 bd 28 02 + 0021f 48 83 bd 28 02 00 00 00 cmp QWORD PTR $T7[rbp], 0 - 00210 74 1a je SHORT $LN20@JitEmitPre - 00212 ba 01 00 00 00 mov edx, 1 - 00217 48 8b 8d 28 02 + 00227 74 1a je SHORT $LN20@JitEmitPre + 00229 ba 01 00 00 00 mov edx, 1 + 0022e 48 8b 8d 28 02 00 00 mov rcx, QWORD PTR $T7[rbp] - 0021e e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00223 48 89 85 98 02 + 00235 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 0023a 48 89 85 98 02 00 00 mov QWORD PTR tv158[rbp], rax - 0022a eb 0b jmp SHORT $LN21@JitEmitPre + 00241 eb 0b jmp SHORT $LN21@JitEmitPre $LN20@JitEmitPre: - 0022c 48 c7 85 98 02 + 00243 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv158[rbp], 0 $LN21@JitEmitPre: ; 324 : return NULL; - 00237 33 c0 xor eax, eax - 00239 e9 0d 02 00 00 jmp $LN1@JitEmitPre + 0024e 33 c0 xor eax, eax + 00250 e9 0d 02 00 00 jmp $LN1@JitEmitPre $LN7@JitEmitPre: ; 325 : } ; 326 : --Count; - 0023e 8b 85 84 00 00 + 00255 8b 85 84 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00244 ff c8 dec eax - 00246 89 85 84 00 00 + 0025b ff c8 dec eax + 0025d 89 85 84 00 00 00 mov DWORD PTR Count$[rbp], eax ; 327 : } - 0024c e9 fc fe ff ff jmp $LN2@JitEmitPre + 00263 e9 fc fe ff ff jmp $LN2@JitEmitPre $LN3@JitEmitPre: ; 328 : ; 329 : if (TwoByte) - 00251 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 - 00255 0f 84 c1 00 00 + 00268 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 + 0026c 0f 84 c1 00 00 00 je $LN8@JitEmitPre ; 330 : { ; 331 : INT32 RipDelta = (OneByte * BYTE_RIP_INST_LENGTH); - 0025b 6b 45 44 07 imul eax, DWORD PTR OneByte$[rbp], 7 - 0025f 89 85 c4 00 00 + 00272 6b 45 44 07 imul eax, DWORD PTR OneByte$[rbp], 7 + 00276 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 332 : if (SaveFlags) - 00265 83 bd d8 02 00 + 0027c 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 0026c 74 0e je SHORT $LN9@JitEmitPre + 00283 74 0e je SHORT $LN9@JitEmitPre ; 333 : RipDelta += 1; - 0026e 8b 85 c4 00 00 + 00285 8b 85 c4 00 00 00 mov eax, DWORD PTR RipDelta$2[rbp] - 00274 ff c0 inc eax - 00276 89 85 c4 00 00 + 0028b ff c0 inc eax + 0028d 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax $LN9@JitEmitPre: ; 334 : RipDelta += (FourByte * 4); - 0027c 8b 85 c4 00 00 + 00293 8b 85 c4 00 00 00 mov eax, DWORD PTR RipDelta$2[rbp] - 00282 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 00285 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] - 00288 89 85 c4 00 00 + 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 00 mov DWORD PTR RipDelta$2[rbp], eax ; 335 : RipDelta += Delta; - 0028e 8b 85 e0 02 00 + 002a5 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 00294 8b 8d c4 00 00 + 002ab 8b 8d c4 00 00 00 mov ecx, DWORD PTR RipDelta$2[rbp] - 0029a 03 c8 add ecx, eax - 0029c 8b c1 mov eax, ecx - 0029e 89 85 c4 00 00 + 002b1 03 c8 add ecx, eax + 002b3 8b c1 mov eax, ecx + 002b5 89 85 c4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 336 : if (!JitiEmitWrapperW(OpType, Block, RipDelta, JitData->Data[3])) - 002a4 b8 04 00 00 00 mov eax, 4 - 002a9 48 6b c0 03 imul rax, rax, 3 - 002ad 48 8b 8d c8 02 + 002bb b8 04 00 00 00 mov eax, 4 + 002c0 48 6b c0 03 imul rax, rax, 3 + 002c4 48 8b 8d c8 02 00 00 mov rcx, QWORD PTR JitData$[rbp] - 002b4 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] - 002b8 44 8b 85 c4 00 + 002cb 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] + 002cf 44 8b 85 c4 00 00 00 mov r8d, DWORD PTR RipDelta$2[rbp] - 002bf 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 002c3 8b 8d d0 02 00 + 002d6 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 002da 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 002c9 e8 00 00 00 00 call ?JitiEmitWrapperW@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperW - 002ce 85 c0 test eax, eax - 002d0 75 4a jne SHORT $LN8@JitEmitPre + 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 ; 337 : { ; 338 : NcDeleteBlock(Block); - 002d2 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 002d6 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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 ; 339 : delete Block; - 002db 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 002df 48 89 85 48 02 + 002f2 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 002f6 48 89 85 48 02 00 00 mov QWORD PTR $T8[rbp], rax - 002e6 48 83 bd 48 02 + 002fd 48 83 bd 48 02 00 00 00 cmp QWORD PTR $T8[rbp], 0 - 002ee 74 1a je SHORT $LN22@JitEmitPre - 002f0 ba 01 00 00 00 mov edx, 1 - 002f5 48 8b 8d 48 02 + 00305 74 1a je SHORT $LN22@JitEmitPre + 00307 ba 01 00 00 00 mov edx, 1 + 0030c 48 8b 8d 48 02 00 00 mov rcx, QWORD PTR $T8[rbp] - 002fc e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00301 48 89 85 98 02 + 00313 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00318 48 89 85 98 02 00 00 mov QWORD PTR tv181[rbp], rax - 00308 eb 0b jmp SHORT $LN23@JitEmitPre + 0031f eb 0b jmp SHORT $LN23@JitEmitPre $LN22@JitEmitPre: - 0030a 48 c7 85 98 02 + 00321 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv181[rbp], 0 $LN23@JitEmitPre: ; 340 : return NULL; - 00315 33 c0 xor eax, eax - 00317 e9 2f 01 00 00 jmp $LN1@JitEmitPre + 0032c 33 c0 xor eax, eax + 0032e e9 2f 01 00 00 jmp $LN1@JitEmitPre $LN8@JitEmitPre: ; 341 : } @@ -3153,100 +3262,100 @@ $LN8@JitEmitPre: ; 343 : ; 344 : if (OneByte) - 0031c 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 - 00320 0f 84 c4 00 00 + 00333 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 + 00337 0f 84 c4 00 00 00 je $LN11@JitEmitPre ; 345 : { ; 346 : INT32 RipDelta = 0; - 00326 c7 85 e4 00 00 + 0033d c7 85 e4 00 00 00 00 00 00 00 mov DWORD PTR RipDelta$3[rbp], 0 ; 347 : if (SaveFlags) - 00330 83 bd d8 02 00 + 00347 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 00337 74 0e je SHORT $LN12@JitEmitPre + 0034e 74 0e je SHORT $LN12@JitEmitPre ; 348 : RipDelta += 1; - 00339 8b 85 e4 00 00 + 00350 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 0033f ff c0 inc eax - 00341 89 85 e4 00 00 + 00356 ff c0 inc eax + 00358 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax $LN12@JitEmitPre: ; 349 : RipDelta += (FourByte * 4) + (TwoByte * 2); - 00347 8b 85 e4 00 00 + 0035e 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 0034d 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 00350 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] - 00353 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00356 8d 04 48 lea eax, DWORD PTR [rax+rcx*2] - 00359 89 85 e4 00 00 + 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 00 mov DWORD PTR RipDelta$3[rbp], eax ; 350 : RipDelta += Delta; - 0035f 8b 85 e0 02 00 + 00376 8b 85 e0 02 00 00 mov eax, DWORD PTR Delta$[rbp] - 00365 8b 8d e4 00 00 + 0037c 8b 8d e4 00 00 00 mov ecx, DWORD PTR RipDelta$3[rbp] - 0036b 03 c8 add ecx, eax - 0036d 8b c1 mov eax, ecx - 0036f 89 85 e4 00 00 + 00382 03 c8 add ecx, eax + 00384 8b c1 mov eax, ecx + 00386 89 85 e4 00 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 351 : if (!JitiEmitWrapperB(OpType, Block, RipDelta, JitData->Data[4])) - 00375 b8 04 00 00 00 mov eax, 4 - 0037a 48 6b c0 04 imul rax, rax, 4 - 0037e 48 8b 8d c8 02 + 0038c b8 04 00 00 00 mov eax, 4 + 00391 48 6b c0 04 imul rax, rax, 4 + 00395 48 8b 8d c8 02 00 00 mov rcx, QWORD PTR JitData$[rbp] - 00385 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] - 00389 44 8b 85 e4 00 + 0039c 44 8b 0c 01 mov r9d, DWORD PTR [rcx+rax] + 003a0 44 8b 85 e4 00 00 00 mov r8d, DWORD PTR RipDelta$3[rbp] - 00390 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] - 00394 8b 8d d0 02 00 + 003a7 48 8b 55 68 mov rdx, QWORD PTR Block$[rbp] + 003ab 8b 8d d0 02 00 00 mov ecx, DWORD PTR OpType$[rbp] - 0039a e8 00 00 00 00 call ?JitiEmitWrapperB@@YAHKPEAU_NATIVE_CODE_BLOCK@@HK@Z ; JitiEmitWrapperB - 0039f 85 c0 test eax, eax - 003a1 75 47 jne SHORT $LN11@JitEmitPre + 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 ; 352 : { ; 353 : NcDeleteBlock(Block); - 003a3 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 003a7 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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 ; 354 : delete Block; - 003ac 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 003b0 48 89 85 68 02 + 003c3 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 003c7 48 89 85 68 02 00 00 mov QWORD PTR $T9[rbp], rax - 003b7 48 83 bd 68 02 + 003ce 48 83 bd 68 02 00 00 00 cmp QWORD PTR $T9[rbp], 0 - 003bf 74 1a je SHORT $LN24@JitEmitPre - 003c1 ba 01 00 00 00 mov edx, 1 - 003c6 48 8b 8d 68 02 + 003d6 74 1a je SHORT $LN24@JitEmitPre + 003d8 ba 01 00 00 00 mov edx, 1 + 003dd 48 8b 8d 68 02 00 00 mov rcx, QWORD PTR $T9[rbp] - 003cd e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 003d2 48 89 85 98 02 + 003e4 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 003e9 48 89 85 98 02 00 00 mov QWORD PTR tv204[rbp], rax - 003d9 eb 0b jmp SHORT $LN25@JitEmitPre + 003f0 eb 0b jmp SHORT $LN25@JitEmitPre $LN24@JitEmitPre: - 003db 48 c7 85 98 02 + 003f2 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv204[rbp], 0 $LN25@JitEmitPre: ; 355 : return NULL; - 003e6 33 c0 xor eax, eax - 003e8 eb 61 jmp SHORT $LN1@JitEmitPre + 003fd 33 c0 xor eax, eax + 003ff eb 61 jmp SHORT $LN1@JitEmitPre $LN11@JitEmitPre: ; 356 : } @@ -3254,61 +3363,61 @@ $LN11@JitEmitPre: ; 358 : ; 359 : if (SaveFlags && !JitEmitPopfqInst(Block)) - 003ea 83 bd d8 02 00 + 00401 83 bd d8 02 00 00 00 cmp DWORD PTR SaveFlags$[rbp], 0 - 003f1 74 54 je SHORT $LN14@JitEmitPre - 003f3 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 003f7 e8 00 00 00 00 call ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; JitEmitPopfqInst - 003fc 85 c0 test eax, eax - 003fe 75 47 jne SHORT $LN14@JitEmitPre + 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 ; 360 : { ; 361 : NcDeleteBlock(Block); - 00400 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00404 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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 ; 362 : delete Block; - 00409 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0040d 48 89 85 88 02 + 00420 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00424 48 89 85 88 02 00 00 mov QWORD PTR $T10[rbp], rax - 00414 48 83 bd 88 02 + 0042b 48 83 bd 88 02 00 00 00 cmp QWORD PTR $T10[rbp], 0 - 0041c 74 1a je SHORT $LN26@JitEmitPre - 0041e ba 01 00 00 00 mov edx, 1 - 00423 48 8b 8d 88 02 + 00433 74 1a je SHORT $LN26@JitEmitPre + 00435 ba 01 00 00 00 mov edx, 1 + 0043a 48 8b 8d 88 02 00 00 mov rcx, QWORD PTR $T10[rbp] - 0042a e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 0042f 48 89 85 98 02 + 00441 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00446 48 89 85 98 02 00 00 mov QWORD PTR tv214[rbp], rax - 00436 eb 0b jmp SHORT $LN27@JitEmitPre + 0044d eb 0b jmp SHORT $LN27@JitEmitPre $LN26@JitEmitPre: - 00438 48 c7 85 98 02 + 0044f 48 c7 85 98 02 00 00 00 00 00 00 mov QWORD PTR tv214[rbp], 0 $LN27@JitEmitPre: ; 363 : return NULL; - 00443 33 c0 xor eax, eax - 00445 eb 04 jmp SHORT $LN1@JitEmitPre + 0045a 33 c0 xor eax, eax + 0045c eb 04 jmp SHORT $LN1@JitEmitPre $LN14@JitEmitPre: ; 364 : } ; 365 : ; 366 : return Block; - 00447 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0045e 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] $LN1@JitEmitPre: ; 367 : } - 0044b 48 8d a5 a8 02 + 00462 48 8d a5 a8 02 00 00 lea rsp, QWORD PTR [rbp+680] - 00452 5f pop rdi - 00453 5d pop rbp - 00454 c3 ret 0 + 00469 5f pop rdi + 0046a 5d pop rbp + 0046b 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 @@ -3403,7 +3512,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:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z _TEXT SEGMENT FourByte$ = 4 @@ -3445,362 +3554,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 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 + 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 04 00 00 mov rcx, QWORD PTR [rsp+1048] - 00030 48 8b 05 00 00 + 0002e 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00037 48 33 c5 xor rax, rbp - 0003a 48 89 85 c0 03 + 00035 48 33 c5 xor rax, rbp + 00038 48 89 85 c0 03 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00041 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00046 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 200 : ULONG FourByte = Link->RawDataSize / 4; - 0004d 33 d2 xor edx, edx - 0004f 48 8b 85 f0 03 + 0004b 33 d2 xor edx, edx + 0004d 48 8b 85 f0 03 00 00 mov rax, QWORD PTR Link$[rbp] - 00056 8b 40 28 mov eax, DWORD PTR [rax+40] - 00059 b9 04 00 00 00 mov ecx, 4 - 0005e f7 f1 div ecx - 00060 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 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 ; 201 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; - 00063 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00066 c1 e0 02 shl eax, 2 - 00069 48 8b 8d f0 03 + 00061 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00064 c1 e0 02 shl eax, 2 + 00067 48 8b 8d f0 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 00070 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00073 2b c8 sub ecx, eax - 00075 8b c1 mov eax, ecx - 00077 33 d2 xor edx, edx - 00079 b9 02 00 00 00 mov ecx, 2 - 0007e f7 f1 div ecx - 00080 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + 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 ; 202 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); - 00083 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00086 c1 e0 02 shl eax, 2 - 00089 48 8b 8d f0 03 + 00081 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00084 c1 e0 02 shl eax, 2 + 00087 48 8b 8d f0 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 00090 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00093 2b c8 sub ecx, eax - 00095 8b c1 mov eax, ecx - 00097 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 0009a d1 e1 shl ecx, 1 - 0009c 2b c1 sub eax, ecx - 0009e 89 45 44 mov DWORD PTR OneByte$[rbp], eax + 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 ; 203 : ; 204 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; - 000a1 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 000a6 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 000ab 48 89 85 e8 02 + 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 00 00 mov QWORD PTR $T8[rbp], rax - 000b2 48 83 bd e8 02 + 000b0 48 83 bd e8 02 00 00 00 cmp QWORD PTR $T8[rbp], 0 - 000ba 74 15 je SHORT $LN11@JitEmitPos - 000bc 48 8b 8d e8 02 + 000b8 74 15 je SHORT $LN11@JitEmitPos + 000ba 48 8b 8d e8 02 00 00 mov rcx, QWORD PTR $T8[rbp] - 000c3 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 000c8 48 89 85 b8 03 + 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 00 00 mov QWORD PTR tv86[rbp], rax - 000cf eb 0b jmp SHORT $LN12@JitEmitPos + 000cd eb 0b jmp SHORT $LN12@JitEmitPos $LN11@JitEmitPos: - 000d1 48 c7 85 b8 03 + 000cf 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv86[rbp], 0 $LN12@JitEmitPos: - 000dc 48 8b 85 b8 03 + 000da 48 8b 85 b8 03 00 00 mov rax, QWORD PTR tv86[rbp] - 000e3 48 89 85 c8 02 + 000e1 48 89 85 c8 02 00 00 mov QWORD PTR $T7[rbp], rax - 000ea 48 8b 85 c8 02 + 000e8 48 8b 85 c8 02 00 00 mov rax, QWORD PTR $T7[rbp] - 000f1 48 89 45 68 mov QWORD PTR Block$[rbp], rax + 000ef 48 89 45 68 mov QWORD PTR Block$[rbp], rax ; 205 : ; 206 : Block->Start = Block->End = new NATIVE_CODE_LINK; - 000f5 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 000fa e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 000ff 48 89 85 28 03 + 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 00 00 mov QWORD PTR $T10[rbp], rax - 00106 48 83 bd 28 03 + 00104 48 83 bd 28 03 00 00 00 cmp QWORD PTR $T10[rbp], 0 - 0010e 74 15 je SHORT $LN13@JitEmitPos - 00110 48 8b 8d 28 03 + 0010c 74 15 je SHORT $LN13@JitEmitPos + 0010e 48 8b 8d 28 03 00 00 mov rcx, QWORD PTR $T10[rbp] - 00117 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 0011c 48 89 85 b8 03 + 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 00 00 mov QWORD PTR tv131[rbp], rax - 00123 eb 0b jmp SHORT $LN14@JitEmitPos + 00121 eb 0b jmp SHORT $LN14@JitEmitPos $LN13@JitEmitPos: - 00125 48 c7 85 b8 03 + 00123 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv131[rbp], 0 $LN14@JitEmitPos: - 00130 48 8b 85 b8 03 + 0012e 48 8b 85 b8 03 00 00 mov rax, QWORD PTR tv131[rbp] - 00137 48 89 85 08 03 + 00135 48 89 85 08 03 00 00 mov QWORD PTR $T9[rbp], rax - 0013e 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00142 48 8b 8d 08 03 + 0013c 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00140 48 8b 8d 08 03 00 00 mov rcx, QWORD PTR $T9[rbp] - 00149 48 89 48 08 mov QWORD PTR [rax+8], rcx - 0014d 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00151 48 8b 8d 08 03 + 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 00 00 mov rcx, QWORD PTR $T9[rbp] - 00158 48 89 08 mov QWORD PTR [rax], rcx + 00156 48 89 08 mov QWORD PTR [rax], rcx ; 207 : ULONG ZeroValue = 0; - 0015b c7 85 84 00 00 + 00159 c7 85 84 00 00 00 00 00 00 00 mov DWORD PTR ZeroValue$[rbp], 0 ; 208 : ULONG Count = FourByte; - 00165 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00168 89 85 a4 00 00 + 00163 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00166 89 85 a4 00 00 00 mov DWORD PTR Count$[rbp], eax $LN2@JitEmitPos: ; 209 : while (Count) - 0016e 83 bd a4 00 00 + 0016c 83 bd a4 00 00 00 00 cmp DWORD PTR Count$[rbp], 0 - 00175 0f 84 ec 00 00 + 00173 0f 84 ec 00 00 00 je $LN3@JitEmitPos ; 210 : { ; 211 : INT32 RipDelta = Link->RawDataSize - ((FourByte - Count) * 4); - 0017b 8b 85 a4 00 00 + 00179 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00181 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 00184 2b c8 sub ecx, eax - 00186 8b c1 mov eax, ecx - 00188 c1 e0 02 shl eax, 2 - 0018b 48 8b 8d f0 03 + 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 00 00 mov rcx, QWORD PTR Link$[rbp] - 00192 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00195 2b c8 sub ecx, eax - 00197 8b c1 mov eax, ecx - 00199 89 85 c4 00 00 + 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 00 mov DWORD PTR RipDelta$4[rbp], eax ; 212 : RipDelta += (FourByte - (Count - 1)) * DWORD_MOV_INST_LENGTH; - 0019f 8b 85 a4 00 00 + 0019d 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 001a5 ff c8 dec eax - 001a7 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 001aa 2b c8 sub ecx, eax - 001ac 8b c1 mov eax, ecx - 001ae 6b c0 0a imul eax, eax, 10 - 001b1 8b 8d c4 00 00 + 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 00 mov ecx, DWORD PTR RipDelta$4[rbp] - 001b7 03 c8 add ecx, eax - 001b9 8b c1 mov eax, ecx - 001bb 89 85 c4 00 00 + 001b5 03 c8 add ecx, eax + 001b7 8b c1 mov eax, ecx + 001b9 89 85 c4 00 00 00 mov DWORD PTR RipDelta$4[rbp], eax ; 213 : RipDelta *= (-1); - 001c1 6b 85 c4 00 00 + 001bf 6b 85 c4 00 00 00 ff imul eax, DWORD PTR RipDelta$4[rbp], -1 - 001c8 89 85 c4 00 00 + 001c6 89 85 c4 00 00 00 mov DWORD PTR RipDelta$4[rbp], eax ; 214 : RipDelta += Delta; - 001ce 8b 85 f8 03 00 + 001cc 8b 85 f8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 001d4 8b 8d c4 00 00 + 001d2 8b 8d c4 00 00 00 mov ecx, DWORD PTR RipDelta$4[rbp] - 001da 03 c8 add ecx, eax - 001dc 8b c1 mov eax, ecx - 001de 89 85 c4 00 00 + 001d8 03 c8 add ecx, eax + 001da 8b c1 mov eax, ecx + 001dc 89 85 c4 00 00 00 mov DWORD PTR RipDelta$4[rbp], eax ; 215 : ZeroValue = rand(); - 001e4 ff 15 00 00 00 + 001e2 ff 15 00 00 00 00 call QWORD PTR __imp_rand - 001ea 89 85 84 00 00 + 001e8 89 85 84 00 00 00 mov DWORD PTR ZeroValue$[rbp], eax ; 216 : if (!JitEmitRipRelativeMovD(Block, RipDelta, (PUCHAR)&ZeroValue)) - 001f0 4c 8d 85 84 00 + 001ee 4c 8d 85 84 00 00 00 lea r8, QWORD PTR ZeroValue$[rbp] - 001f7 8b 95 c4 00 00 + 001f5 8b 95 c4 00 00 00 mov edx, DWORD PTR RipDelta$4[rbp] - 001fd 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00201 e8 00 00 00 00 call ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovD - 00206 85 c0 test eax, eax - 00208 75 4a jne SHORT $LN4@JitEmitPos + 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 ; 217 : { ; 218 : NcDeleteBlock(Block); - 0020a 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0020e e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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 ; 219 : delete Block; - 00213 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00217 48 89 85 48 03 + 00211 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00215 48 89 85 48 03 00 00 mov QWORD PTR $T11[rbp], rax - 0021e 48 83 bd 48 03 + 0021c 48 83 bd 48 03 00 00 00 cmp QWORD PTR $T11[rbp], 0 - 00226 74 1a je SHORT $LN15@JitEmitPos - 00228 ba 01 00 00 00 mov edx, 1 - 0022d 48 8b 8d 48 03 + 00224 74 1a je SHORT $LN15@JitEmitPos + 00226 ba 01 00 00 00 mov edx, 1 + 0022b 48 8b 8d 48 03 00 00 mov rcx, QWORD PTR $T11[rbp] - 00234 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00239 48 89 85 b8 03 + 00232 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00237 48 89 85 b8 03 00 00 mov QWORD PTR tv153[rbp], rax - 00240 eb 0b jmp SHORT $LN16@JitEmitPos + 0023e eb 0b jmp SHORT $LN16@JitEmitPos $LN15@JitEmitPos: - 00242 48 c7 85 b8 03 + 00240 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv153[rbp], 0 $LN16@JitEmitPos: ; 220 : return NULL; - 0024d 33 c0 xor eax, eax - 0024f e9 58 02 00 00 jmp $LN1@JitEmitPos + 0024b 33 c0 xor eax, eax + 0024d e9 58 02 00 00 jmp $LN1@JitEmitPos $LN4@JitEmitPos: ; 221 : } ; 222 : --Count; - 00254 8b 85 a4 00 00 + 00252 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 0025a ff c8 dec eax - 0025c 89 85 a4 00 00 + 00258 ff c8 dec eax + 0025a 89 85 a4 00 00 00 mov DWORD PTR Count$[rbp], eax ; 223 : } - 00262 e9 07 ff ff ff jmp $LN2@JitEmitPos + 00260 e9 07 ff ff ff jmp $LN2@JitEmitPos $LN3@JitEmitPos: ; 224 : ; 225 : if (TwoByte) - 00267 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 - 0026b 0f 84 d0 00 00 + 00265 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 + 00269 0f 84 d0 00 00 00 je $LN5@JitEmitPos ; 226 : { ; 227 : INT32 RipDelta = Link->RawDataSize - (FourByte * 4); - 00271 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00274 c1 e0 02 shl eax, 2 - 00277 48 8b 8d f0 03 + 0026f 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00272 c1 e0 02 shl eax, 2 + 00275 48 8b 8d f0 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 0027e 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00281 2b c8 sub ecx, eax - 00283 8b c1 mov eax, ecx - 00285 89 85 e4 00 00 + 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 00 mov DWORD PTR RipDelta$5[rbp], eax ; 228 : RipDelta += (FourByte * DWORD_MOV_INST_LENGTH); - 0028b 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 - 0028f 8b 8d e4 00 00 + 00289 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 + 0028d 8b 8d e4 00 00 00 mov ecx, DWORD PTR RipDelta$5[rbp] - 00295 03 c8 add ecx, eax - 00297 8b c1 mov eax, ecx - 00299 89 85 e4 00 00 + 00293 03 c8 add ecx, eax + 00295 8b c1 mov eax, ecx + 00297 89 85 e4 00 00 00 mov DWORD PTR RipDelta$5[rbp], eax ; 229 : RipDelta += WORD_MOV_INST_LENGTH; - 0029f 8b 85 e4 00 00 + 0029d 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$5[rbp] - 002a5 83 c0 09 add eax, 9 - 002a8 89 85 e4 00 00 + 002a3 83 c0 09 add eax, 9 + 002a6 89 85 e4 00 00 00 mov DWORD PTR RipDelta$5[rbp], eax ; 230 : RipDelta *= (-1); - 002ae 6b 85 e4 00 00 + 002ac 6b 85 e4 00 00 00 ff imul eax, DWORD PTR RipDelta$5[rbp], -1 - 002b5 89 85 e4 00 00 + 002b3 89 85 e4 00 00 00 mov DWORD PTR RipDelta$5[rbp], eax ; 231 : RipDelta += Delta; - 002bb 8b 85 f8 03 00 + 002b9 8b 85 f8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 002c1 8b 8d e4 00 00 + 002bf 8b 8d e4 00 00 00 mov ecx, DWORD PTR RipDelta$5[rbp] - 002c7 03 c8 add ecx, eax - 002c9 8b c1 mov eax, ecx - 002cb 89 85 e4 00 00 + 002c5 03 c8 add ecx, eax + 002c7 8b c1 mov eax, ecx + 002c9 89 85 e4 00 00 00 mov DWORD PTR RipDelta$5[rbp], eax ; 232 : ZeroValue = rand(); - 002d1 ff 15 00 00 00 + 002cf ff 15 00 00 00 00 call QWORD PTR __imp_rand - 002d7 89 85 84 00 00 + 002d5 89 85 84 00 00 00 mov DWORD PTR ZeroValue$[rbp], eax ; 233 : if (!JitEmitRipRelativeMovW(Block, RipDelta, (PUCHAR)&ZeroValue)) - 002dd 4c 8d 85 84 00 + 002db 4c 8d 85 84 00 00 00 lea r8, QWORD PTR ZeroValue$[rbp] - 002e4 8b 95 e4 00 00 + 002e2 8b 95 e4 00 00 00 mov edx, DWORD PTR RipDelta$5[rbp] - 002ea 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 002ee e8 00 00 00 00 call ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovW - 002f3 85 c0 test eax, eax - 002f5 75 4a jne SHORT $LN5@JitEmitPos + 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 ; 234 : { ; 235 : NcDeleteBlock(Block); - 002f7 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 002fb e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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 ; 236 : delete Block; - 00300 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00304 48 89 85 68 03 + 002fe 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00302 48 89 85 68 03 00 00 mov QWORD PTR $T12[rbp], rax - 0030b 48 83 bd 68 03 + 00309 48 83 bd 68 03 00 00 00 cmp QWORD PTR $T12[rbp], 0 - 00313 74 1a je SHORT $LN17@JitEmitPos - 00315 ba 01 00 00 00 mov edx, 1 - 0031a 48 8b 8d 68 03 + 00311 74 1a je SHORT $LN17@JitEmitPos + 00313 ba 01 00 00 00 mov edx, 1 + 00318 48 8b 8d 68 03 00 00 mov rcx, QWORD PTR $T12[rbp] - 00321 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 00326 48 89 85 b8 03 + 0031f e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00324 48 89 85 b8 03 00 00 mov QWORD PTR tv175[rbp], rax - 0032d eb 0b jmp SHORT $LN18@JitEmitPos + 0032b eb 0b jmp SHORT $LN18@JitEmitPos $LN17@JitEmitPos: - 0032f 48 c7 85 b8 03 + 0032d 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv175[rbp], 0 $LN18@JitEmitPos: ; 237 : return NULL; - 0033a 33 c0 xor eax, eax - 0033c e9 6b 01 00 00 jmp $LN1@JitEmitPos + 00338 33 c0 xor eax, eax + 0033a e9 6b 01 00 00 jmp $LN1@JitEmitPos $LN5@JitEmitPos: ; 238 : } @@ -3808,121 +3917,121 @@ $LN5@JitEmitPos: ; 240 : ; 241 : if (OneByte) - 00341 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 - 00345 0f 84 e8 00 00 + 0033f 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 + 00343 0f 84 e8 00 00 00 je $LN7@JitEmitPos ; 242 : { ; 243 : INT32 RipDelta = Link->RawDataSize - (FourByte * 4) - (TwoByte * 2); - 0034b 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0034e c1 e0 02 shl eax, 2 - 00351 48 8b 8d f0 03 + 00349 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0034c c1 e0 02 shl eax, 2 + 0034f 48 8b 8d f0 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 00358 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 0035b 2b c8 sub ecx, eax - 0035d 8b c1 mov eax, ecx - 0035f 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00362 d1 e1 shl ecx, 1 - 00364 2b c1 sub eax, ecx - 00366 89 85 04 01 00 + 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 00 mov DWORD PTR RipDelta$6[rbp], eax ; 244 : RipDelta += (FourByte * DWORD_MOV_INST_LENGTH); - 0036c 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 - 00370 8b 8d 04 01 00 + 0036a 6b 45 04 0a imul eax, DWORD PTR FourByte$[rbp], 10 + 0036e 8b 8d 04 01 00 00 mov ecx, DWORD PTR RipDelta$6[rbp] - 00376 03 c8 add ecx, eax - 00378 8b c1 mov eax, ecx - 0037a 89 85 04 01 00 + 00374 03 c8 add ecx, eax + 00376 8b c1 mov eax, ecx + 00378 89 85 04 01 00 00 mov DWORD PTR RipDelta$6[rbp], eax ; 245 : RipDelta += (TwoByte * WORD_MOV_INST_LENGTH); - 00380 6b 45 24 09 imul eax, DWORD PTR TwoByte$[rbp], 9 - 00384 8b 8d 04 01 00 + 0037e 6b 45 24 09 imul eax, DWORD PTR TwoByte$[rbp], 9 + 00382 8b 8d 04 01 00 00 mov ecx, DWORD PTR RipDelta$6[rbp] - 0038a 03 c8 add ecx, eax - 0038c 8b c1 mov eax, ecx - 0038e 89 85 04 01 00 + 00388 03 c8 add ecx, eax + 0038a 8b c1 mov eax, ecx + 0038c 89 85 04 01 00 00 mov DWORD PTR RipDelta$6[rbp], eax ; 246 : RipDelta += BYTE_MOV_INST_LENGTH; - 00394 8b 85 04 01 00 + 00392 8b 85 04 01 00 00 mov eax, DWORD PTR RipDelta$6[rbp] - 0039a 83 c0 07 add eax, 7 - 0039d 89 85 04 01 00 + 00398 83 c0 07 add eax, 7 + 0039b 89 85 04 01 00 00 mov DWORD PTR RipDelta$6[rbp], eax ; 247 : RipDelta *= (-1); - 003a3 6b 85 04 01 00 + 003a1 6b 85 04 01 00 00 ff imul eax, DWORD PTR RipDelta$6[rbp], -1 - 003aa 89 85 04 01 00 + 003a8 89 85 04 01 00 00 mov DWORD PTR RipDelta$6[rbp], eax ; 248 : RipDelta += Delta; - 003b0 8b 85 f8 03 00 + 003ae 8b 85 f8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 003b6 8b 8d 04 01 00 + 003b4 8b 8d 04 01 00 00 mov ecx, DWORD PTR RipDelta$6[rbp] - 003bc 03 c8 add ecx, eax - 003be 8b c1 mov eax, ecx - 003c0 89 85 04 01 00 + 003ba 03 c8 add ecx, eax + 003bc 8b c1 mov eax, ecx + 003be 89 85 04 01 00 00 mov DWORD PTR RipDelta$6[rbp], eax ; 249 : ZeroValue = rand(); - 003c6 ff 15 00 00 00 + 003c4 ff 15 00 00 00 00 call QWORD PTR __imp_rand - 003cc 89 85 84 00 00 + 003ca 89 85 84 00 00 00 mov DWORD PTR ZeroValue$[rbp], eax ; 250 : if (!JitEmitRipRelativeMovB(Block, RipDelta, (PUCHAR)&ZeroValue)) - 003d2 4c 8d 85 84 00 + 003d0 4c 8d 85 84 00 00 00 lea r8, QWORD PTR ZeroValue$[rbp] - 003d9 8b 95 04 01 00 + 003d7 8b 95 04 01 00 00 mov edx, DWORD PTR RipDelta$6[rbp] - 003df 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 003e3 e8 00 00 00 00 call ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovB - 003e8 85 c0 test eax, eax - 003ea 75 47 jne SHORT $LN7@JitEmitPos + 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 ; 251 : { ; 252 : NcDeleteBlock(Block); - 003ec 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 003f0 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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 ; 253 : delete Block; - 003f5 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 003f9 48 89 85 88 03 + 003f3 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 003f7 48 89 85 88 03 00 00 mov QWORD PTR $T13[rbp], rax - 00400 48 83 bd 88 03 + 003fe 48 83 bd 88 03 00 00 00 cmp QWORD PTR $T13[rbp], 0 - 00408 74 1a je SHORT $LN19@JitEmitPos - 0040a ba 01 00 00 00 mov edx, 1 - 0040f 48 8b 8d 88 03 + 00406 74 1a je SHORT $LN19@JitEmitPos + 00408 ba 01 00 00 00 mov edx, 1 + 0040d 48 8b 8d 88 03 00 00 mov rcx, QWORD PTR $T13[rbp] - 00416 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 0041b 48 89 85 b8 03 + 00414 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00419 48 89 85 b8 03 00 00 mov QWORD PTR tv200[rbp], rax - 00422 eb 0b jmp SHORT $LN20@JitEmitPos + 00420 eb 0b jmp SHORT $LN20@JitEmitPos $LN19@JitEmitPos: - 00424 48 c7 85 b8 03 + 00422 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv200[rbp], 0 $LN20@JitEmitPos: ; 254 : return NULL; - 0042f 33 c0 xor eax, eax - 00431 eb 79 jmp SHORT $LN1@JitEmitPos + 0042d 33 c0 xor eax, eax + 0042f eb 79 jmp SHORT $LN1@JitEmitPos $LN7@JitEmitPos: ; 255 : } @@ -3930,51 +4039,51 @@ $LN7@JitEmitPos: ; 257 : ; 258 : PNATIVE_CODE_LINK StartLink = Block->Start; - 00433 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00437 48 8b 00 mov rax, QWORD PTR [rax] - 0043a 48 89 85 28 01 + 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 00 00 mov QWORD PTR StartLink$[rbp], rax ; 259 : Block->Start = Block->Start->Next; - 00441 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00445 48 8b 00 mov rax, QWORD PTR [rax] - 00448 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0044c 48 8b 00 mov rax, QWORD PTR [rax] - 0044f 48 89 01 mov QWORD PTR [rcx], rax + 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 ; 260 : if (Block->Start) - 00452 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00456 48 83 38 00 cmp QWORD PTR [rax], 0 - 0045a 74 0f je SHORT $LN9@JitEmitPos + 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 ; 261 : Block->Start->Prev = NULL; - 0045c 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00460 48 8b 00 mov rax, QWORD PTR [rax] - 00463 48 c7 40 08 00 + 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 00 00 00 mov QWORD PTR [rax+8], 0 $LN9@JitEmitPos: ; 262 : delete StartLink; - 0046b 48 8b 85 28 01 + 00469 48 8b 85 28 01 00 00 mov rax, QWORD PTR StartLink$[rbp] - 00472 48 89 85 a8 03 + 00470 48 89 85 a8 03 00 00 mov QWORD PTR $T14[rbp], rax - 00479 48 83 bd a8 03 + 00477 48 83 bd a8 03 00 00 00 cmp QWORD PTR $T14[rbp], 0 - 00481 74 1a je SHORT $LN21@JitEmitPos - 00483 ba 01 00 00 00 mov edx, 1 - 00488 48 8b 8d a8 03 + 0047f 74 1a je SHORT $LN21@JitEmitPos + 00481 ba 01 00 00 00 mov edx, 1 + 00486 48 8b 8d a8 03 00 00 mov rcx, QWORD PTR $T14[rbp] - 0048f e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 00494 48 89 85 b8 03 + 0048d e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 00492 48 89 85 b8 03 00 00 mov QWORD PTR tv213[rbp], rax - 0049b eb 0b jmp SHORT $LN22@JitEmitPos + 00499 eb 0b jmp SHORT $LN22@JitEmitPos $LN21@JitEmitPos: - 0049d 48 c7 85 b8 03 + 0049b 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv213[rbp], 0 $LN22@JitEmitPos: @@ -3982,26 +4091,26 @@ $LN22@JitEmitPos: ; 263 : ; 264 : return Block; - 004a8 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 004a6 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] $LN1@JitEmitPos: ; 265 : } - 004ac 48 8b f8 mov rdi, rax - 004af 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 004b3 48 8d 15 00 00 + 004aa 48 8b f8 mov rdi, rax + 004ad 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 004b1 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z$rtcFrameData - 004ba e8 00 00 00 00 call _RTC_CheckStackVars - 004bf 48 8b c7 mov rax, rdi - 004c2 48 8b 8d c0 03 + 004b8 e8 00 00 00 00 call _RTC_CheckStackVars + 004bd 48 8b c7 mov rax, rdi + 004c0 48 8b 8d c0 03 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 004c9 48 33 cd xor rcx, rbp - 004cc e8 00 00 00 00 call __security_check_cookie - 004d1 48 8d a5 d8 03 + 004c7 48 33 cd xor rcx, rbp + 004ca e8 00 00 00 00 call __security_check_cookie + 004cf 48 8d a5 d8 03 00 00 lea rsp, QWORD PTR [rbp+984] - 004d8 5f pop rdi - 004d9 5d pop rbp - 004da c3 ret 0 + 004d6 5f pop rdi + 004d7 5d pop rbp + 004d8 c3 ret 0 ?JitEmitPostRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ENDP ; JitEmitPostRipMov _TEXT ENDS ; COMDAT text$x @@ -4191,7 +4300,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:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z _TEXT SEGMENT FourByte$ = 4 @@ -4232,325 +4341,331 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 135 : ULONG FourByte = Link->RawDataSize / 4; - 00023 33 d2 xor edx, edx - 00025 48 8b 85 e0 03 + 0003a 33 d2 xor edx, edx + 0003c 48 8b 85 e0 03 00 00 mov rax, QWORD PTR Link$[rbp] - 0002c 8b 40 28 mov eax, DWORD PTR [rax+40] - 0002f b9 04 00 00 00 mov ecx, 4 - 00034 f7 f1 div ecx - 00036 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 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 ; 136 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; - 00039 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0003c c1 e0 02 shl eax, 2 - 0003f 48 8b 8d e0 03 + 00050 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00053 c1 e0 02 shl eax, 2 + 00056 48 8b 8d e0 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 00046 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00049 2b c8 sub ecx, eax - 0004b 8b c1 mov eax, ecx - 0004d 33 d2 xor edx, edx - 0004f b9 02 00 00 00 mov ecx, 2 - 00054 f7 f1 div ecx - 00056 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + 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 ; 137 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); - 00059 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0005c c1 e0 02 shl eax, 2 - 0005f 48 8b 8d e0 03 + 00070 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00073 c1 e0 02 shl eax, 2 + 00076 48 8b 8d e0 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 00066 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 00069 2b c8 sub ecx, eax - 0006b 8b c1 mov eax, ecx - 0006d 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00070 03 c9 add ecx, ecx - 00072 2b c1 sub eax, ecx - 00074 89 45 44 mov DWORD PTR OneByte$[rbp], eax + 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 ; 138 : ; 139 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; - 00077 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0007c e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00081 48 89 85 e8 02 + 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 00 00 mov QWORD PTR $T5[rbp], rax - 00088 48 83 bd e8 02 + 0009f 48 83 bd e8 02 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00090 74 15 je SHORT $LN11@JitEmitPre - 00092 48 8b 8d e8 02 + 000a7 74 15 je SHORT $LN11@JitEmitPre + 000a9 48 8b 8d e8 02 00 00 mov rcx, QWORD PTR $T5[rbp] - 00099 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK - 0009e 48 89 85 b8 03 + 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 00 00 mov QWORD PTR tv86[rbp], rax - 000a5 eb 0b jmp SHORT $LN12@JitEmitPre + 000bc eb 0b jmp SHORT $LN12@JitEmitPre $LN11@JitEmitPre: - 000a7 48 c7 85 b8 03 + 000be 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv86[rbp], 0 $LN12@JitEmitPre: - 000b2 48 8b 85 b8 03 + 000c9 48 8b 85 b8 03 00 00 mov rax, QWORD PTR tv86[rbp] - 000b9 48 89 85 c8 02 + 000d0 48 89 85 c8 02 00 00 mov QWORD PTR $T4[rbp], rax - 000c0 48 8b 85 c8 02 + 000d7 48 8b 85 c8 02 00 00 mov rax, QWORD PTR $T4[rbp] - 000c7 48 89 45 68 mov QWORD PTR Block$[rbp], rax + 000de 48 89 45 68 mov QWORD PTR Block$[rbp], rax ; 140 : ; 141 : Block->Start = Block->End = new NATIVE_CODE_LINK; - 000cb b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 000d0 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 000d5 48 89 85 28 03 + 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 00 00 mov QWORD PTR $T7[rbp], rax - 000dc 48 83 bd 28 03 + 000f3 48 83 bd 28 03 00 00 00 cmp QWORD PTR $T7[rbp], 0 - 000e4 74 15 je SHORT $LN13@JitEmitPre - 000e6 48 8b 8d 28 03 + 000fb 74 15 je SHORT $LN13@JitEmitPre + 000fd 48 8b 8d 28 03 00 00 mov rcx, QWORD PTR $T7[rbp] - 000ed e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 000f2 48 89 85 b8 03 + 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 00 00 mov QWORD PTR tv131[rbp], rax - 000f9 eb 0b jmp SHORT $LN14@JitEmitPre + 00110 eb 0b jmp SHORT $LN14@JitEmitPre $LN13@JitEmitPre: - 000fb 48 c7 85 b8 03 + 00112 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv131[rbp], 0 $LN14@JitEmitPre: - 00106 48 8b 85 b8 03 + 0011d 48 8b 85 b8 03 00 00 mov rax, QWORD PTR tv131[rbp] - 0010d 48 89 85 08 03 + 00124 48 89 85 08 03 00 00 mov QWORD PTR $T6[rbp], rax - 00114 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00118 48 8b 8d 08 03 + 0012b 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 0012f 48 8b 8d 08 03 00 00 mov rcx, QWORD PTR $T6[rbp] - 0011f 48 89 48 08 mov QWORD PTR [rax+8], rcx - 00123 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00127 48 8b 8d 08 03 + 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 00 00 mov rcx, QWORD PTR $T6[rbp] - 0012e 48 89 08 mov QWORD PTR [rax], rcx + 00145 48 89 08 mov QWORD PTR [rax], rcx ; 142 : PUCHAR DataOffset = Link->RawData; - 00131 48 8b 85 e0 03 + 00148 48 8b 85 e0 03 00 00 mov rax, QWORD PTR Link$[rbp] - 00138 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 0013c 48 89 85 88 00 + 0014f 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 00153 48 89 85 88 00 00 00 mov QWORD PTR DataOffset$[rbp], rax ; 143 : ULONG Count = FourByte; - 00143 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 00146 89 85 a4 00 00 + 0015a 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 0015d 89 85 a4 00 00 00 mov DWORD PTR Count$[rbp], eax $LN2@JitEmitPre: ; 144 : while (Count) - 0014c 83 bd a4 00 00 + 00163 83 bd a4 00 00 00 00 cmp DWORD PTR Count$[rbp], 0 - 00153 0f 84 d8 00 00 + 0016a 0f 84 d8 00 00 00 je $LN3@JitEmitPre ; 145 : { ; 146 : //Account for remaining MOVs ; 147 : INT32 RipDelta = (((Count - 1) * DWORD_MOV_INST_LENGTH) + (TwoByte * WORD_MOV_INST_LENGTH) + (OneByte * BYTE_MOV_INST_LENGTH)); - 00159 8b 85 a4 00 00 + 00170 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 0015f ff c8 dec eax - 00161 6b c0 0a imul eax, eax, 10 - 00164 6b 4d 24 09 imul ecx, DWORD PTR TwoByte$[rbp], 9 - 00168 03 c1 add eax, ecx - 0016a 6b 4d 44 07 imul ecx, DWORD PTR OneByte$[rbp], 7 - 0016e 03 c1 add eax, ecx - 00170 89 85 c4 00 00 + 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 00 mov DWORD PTR RipDelta$1[rbp], eax ; 148 : //Account for already MOVd instructions ; 149 : RipDelta += ((FourByte - Count) * 4); - 00176 8b 85 a4 00 00 + 0018d 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 0017c 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 0017f 2b c8 sub ecx, eax - 00181 8b c1 mov eax, ecx - 00183 8b 8d c4 00 00 + 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 00 mov ecx, DWORD PTR RipDelta$1[rbp] - 00189 8d 04 81 lea eax, DWORD PTR [rcx+rax*4] - 0018c 89 85 c4 00 00 + 001a0 8d 04 81 lea eax, DWORD PTR [rcx+rax*4] + 001a3 89 85 c4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 150 : RipDelta += Delta; - 00192 8b 85 e8 03 00 + 001a9 8b 85 e8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 00198 8b 8d c4 00 00 + 001af 8b 8d c4 00 00 00 mov ecx, DWORD PTR RipDelta$1[rbp] - 0019e 03 c8 add ecx, eax - 001a0 8b c1 mov eax, ecx - 001a2 89 85 c4 00 00 + 001b5 03 c8 add ecx, eax + 001b7 8b c1 mov eax, ecx + 001b9 89 85 c4 00 00 00 mov DWORD PTR RipDelta$1[rbp], eax ; 151 : //Add the actual instruction ; 152 : if (!JitEmitRipRelativeMovD(Block, RipDelta, DataOffset)) - 001a8 4c 8b 85 88 00 + 001bf 4c 8b 85 88 00 00 00 mov r8, QWORD PTR DataOffset$[rbp] - 001af 8b 95 c4 00 00 + 001c6 8b 95 c4 00 00 00 mov edx, DWORD PTR RipDelta$1[rbp] - 001b5 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 001b9 e8 00 00 00 00 call ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovD - 001be 85 c0 test eax, eax - 001c0 75 4a jne SHORT $LN4@JitEmitPre + 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 ; 153 : { ; 154 : NcDeleteBlock(Block); - 001c2 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 001c6 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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 ; 155 : delete Block; - 001cb 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 001cf 48 89 85 48 03 + 001e2 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 001e6 48 89 85 48 03 00 00 mov QWORD PTR $T8[rbp], rax - 001d6 48 83 bd 48 03 + 001ed 48 83 bd 48 03 00 00 00 cmp QWORD PTR $T8[rbp], 0 - 001de 74 1a je SHORT $LN15@JitEmitPre - 001e0 ba 01 00 00 00 mov edx, 1 - 001e5 48 8b 8d 48 03 + 001f5 74 1a je SHORT $LN15@JitEmitPre + 001f7 ba 01 00 00 00 mov edx, 1 + 001fc 48 8b 8d 48 03 00 00 mov rcx, QWORD PTR $T8[rbp] - 001ec e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 001f1 48 89 85 b8 03 + 00203 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00208 48 89 85 b8 03 00 00 mov QWORD PTR tv153[rbp], rax - 001f8 eb 0b jmp SHORT $LN16@JitEmitPre + 0020f eb 0b jmp SHORT $LN16@JitEmitPre $LN15@JitEmitPre: - 001fa 48 c7 85 b8 03 + 00211 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv153[rbp], 0 $LN16@JitEmitPre: ; 156 : return NULL; - 00205 33 c0 xor eax, eax - 00207 e9 f3 01 00 00 jmp $LN1@JitEmitPre + 0021c 33 c0 xor eax, eax + 0021e e9 f3 01 00 00 jmp $LN1@JitEmitPre $LN4@JitEmitPre: ; 157 : } ; 158 : DataOffset += 4; - 0020c 48 8b 85 88 00 + 00223 48 8b 85 88 00 00 00 mov rax, QWORD PTR DataOffset$[rbp] - 00213 48 83 c0 04 add rax, 4 - 00217 48 89 85 88 00 + 0022a 48 83 c0 04 add rax, 4 + 0022e 48 89 85 88 00 00 00 mov QWORD PTR DataOffset$[rbp], rax ; 159 : --Count; - 0021e 8b 85 a4 00 00 + 00235 8b 85 a4 00 00 00 mov eax, DWORD PTR Count$[rbp] - 00224 ff c8 dec eax - 00226 89 85 a4 00 00 + 0023b ff c8 dec eax + 0023d 89 85 a4 00 00 00 mov DWORD PTR Count$[rbp], eax ; 160 : } - 0022c e9 1b ff ff ff jmp $LN2@JitEmitPre + 00243 e9 1b ff ff ff jmp $LN2@JitEmitPre $LN3@JitEmitPre: ; 161 : ; 162 : if (TwoByte) - 00231 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 - 00235 0f 84 a8 00 00 + 00248 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 + 0024c 0f 84 a8 00 00 00 je $LN5@JitEmitPre ; 163 : { ; 164 : INT32 RipDelta = (OneByte * BYTE_MOV_INST_LENGTH); - 0023b 6b 45 44 07 imul eax, DWORD PTR OneByte$[rbp], 7 - 0023f 89 85 e4 00 00 + 00252 6b 45 44 07 imul eax, DWORD PTR OneByte$[rbp], 7 + 00256 89 85 e4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 165 : RipDelta += (FourByte * 4); - 00245 8b 85 e4 00 00 + 0025c 8b 85 e4 00 00 00 mov eax, DWORD PTR RipDelta$2[rbp] - 0024b 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 0024e 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] - 00251 89 85 e4 00 00 + 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 00 mov DWORD PTR RipDelta$2[rbp], eax ; 166 : RipDelta += Delta; - 00257 8b 85 e8 03 00 + 0026e 8b 85 e8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 0025d 8b 8d e4 00 00 + 00274 8b 8d e4 00 00 00 mov ecx, DWORD PTR RipDelta$2[rbp] - 00263 03 c8 add ecx, eax - 00265 8b c1 mov eax, ecx - 00267 89 85 e4 00 00 + 0027a 03 c8 add ecx, eax + 0027c 8b c1 mov eax, ecx + 0027e 89 85 e4 00 00 00 mov DWORD PTR RipDelta$2[rbp], eax ; 167 : if (!JitEmitRipRelativeMovW(Block, RipDelta, DataOffset)) - 0026d 4c 8b 85 88 00 + 00284 4c 8b 85 88 00 00 00 mov r8, QWORD PTR DataOffset$[rbp] - 00274 8b 95 e4 00 00 + 0028b 8b 95 e4 00 00 00 mov edx, DWORD PTR RipDelta$2[rbp] - 0027a 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0027e e8 00 00 00 00 call ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovW - 00283 85 c0 test eax, eax - 00285 75 4a jne SHORT $LN6@JitEmitPre + 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 ; 168 : { ; 169 : NcDeleteBlock(Block); - 00287 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0028b e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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 ; 170 : delete Block; - 00290 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00294 48 89 85 68 03 + 002a7 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 002ab 48 89 85 68 03 00 00 mov QWORD PTR $T9[rbp], rax - 0029b 48 83 bd 68 03 + 002b2 48 83 bd 68 03 00 00 00 cmp QWORD PTR $T9[rbp], 0 - 002a3 74 1a je SHORT $LN17@JitEmitPre - 002a5 ba 01 00 00 00 mov edx, 1 - 002aa 48 8b 8d 68 03 + 002ba 74 1a je SHORT $LN17@JitEmitPre + 002bc ba 01 00 00 00 mov edx, 1 + 002c1 48 8b 8d 68 03 00 00 mov rcx, QWORD PTR $T9[rbp] - 002b1 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 002b6 48 89 85 b8 03 + 002c8 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 002cd 48 89 85 b8 03 00 00 mov QWORD PTR tv171[rbp], rax - 002bd eb 0b jmp SHORT $LN18@JitEmitPre + 002d4 eb 0b jmp SHORT $LN18@JitEmitPre $LN17@JitEmitPre: - 002bf 48 c7 85 b8 03 + 002d6 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv171[rbp], 0 $LN18@JitEmitPre: ; 171 : return NULL; - 002ca 33 c0 xor eax, eax - 002cc e9 2e 01 00 00 jmp $LN1@JitEmitPre + 002e1 33 c0 xor eax, eax + 002e3 e9 2e 01 00 00 jmp $LN1@JitEmitPre $LN6@JitEmitPre: ; 172 : } ; 173 : DataOffset += 2; - 002d1 48 8b 85 88 00 + 002e8 48 8b 85 88 00 00 00 mov rax, QWORD PTR DataOffset$[rbp] - 002d8 48 83 c0 02 add rax, 2 - 002dc 48 89 85 88 00 + 002ef 48 83 c0 02 add rax, 2 + 002f3 48 89 85 88 00 00 00 mov QWORD PTR DataOffset$[rbp], rax $LN5@JitEmitPre: @@ -4558,80 +4673,80 @@ $LN5@JitEmitPre: ; 175 : ; 176 : if (OneByte) - 002e3 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 - 002e7 0f 84 99 00 00 + 002fa 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 + 002fe 0f 84 99 00 00 00 je $LN7@JitEmitPre ; 177 : { ; 178 : INT32 RipDelta = 0; - 002ed c7 85 04 01 00 + 00304 c7 85 04 01 00 00 00 00 00 00 mov DWORD PTR RipDelta$3[rbp], 0 ; 179 : RipDelta += (FourByte * 4) + (TwoByte * 2); - 002f7 8b 85 04 01 00 + 0030e 8b 85 04 01 00 00 mov eax, DWORD PTR RipDelta$3[rbp] - 002fd 8b 4d 04 mov ecx, DWORD PTR FourByte$[rbp] - 00300 8d 04 88 lea eax, DWORD PTR [rax+rcx*4] - 00303 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00306 8d 04 48 lea eax, DWORD PTR [rax+rcx*2] - 00309 89 85 04 01 00 + 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 00 mov DWORD PTR RipDelta$3[rbp], eax ; 180 : RipDelta += Delta; - 0030f 8b 85 e8 03 00 + 00326 8b 85 e8 03 00 00 mov eax, DWORD PTR Delta$[rbp] - 00315 8b 8d 04 01 00 + 0032c 8b 8d 04 01 00 00 mov ecx, DWORD PTR RipDelta$3[rbp] - 0031b 03 c8 add ecx, eax - 0031d 8b c1 mov eax, ecx - 0031f 89 85 04 01 00 + 00332 03 c8 add ecx, eax + 00334 8b c1 mov eax, ecx + 00336 89 85 04 01 00 00 mov DWORD PTR RipDelta$3[rbp], eax ; 181 : if (!JitEmitRipRelativeMovB(Block, RipDelta, DataOffset)) - 00325 4c 8b 85 88 00 + 0033c 4c 8b 85 88 00 00 00 mov r8, QWORD PTR DataOffset$[rbp] - 0032c 8b 95 04 01 00 + 00343 8b 95 04 01 00 00 mov edx, DWORD PTR RipDelta$3[rbp] - 00332 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00336 e8 00 00 00 00 call ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovB - 0033b 85 c0 test eax, eax - 0033d 75 47 jne SHORT $LN7@JitEmitPre + 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 ; 182 : { ; 183 : NcDeleteBlock(Block); - 0033f 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 00343 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 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 ; 184 : delete Block; - 00348 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0034c 48 89 85 88 03 + 0035f 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00363 48 89 85 88 03 00 00 mov QWORD PTR $T10[rbp], rax - 00353 48 83 bd 88 03 + 0036a 48 83 bd 88 03 00 00 00 cmp QWORD PTR $T10[rbp], 0 - 0035b 74 1a je SHORT $LN19@JitEmitPre - 0035d ba 01 00 00 00 mov edx, 1 - 00362 48 8b 8d 88 03 + 00372 74 1a je SHORT $LN19@JitEmitPre + 00374 ba 01 00 00 00 mov edx, 1 + 00379 48 8b 8d 88 03 00 00 mov rcx, QWORD PTR $T10[rbp] - 00369 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z - 0036e 48 89 85 b8 03 + 00380 e8 00 00 00 00 call ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z + 00385 48 89 85 b8 03 00 00 mov QWORD PTR tv189[rbp], rax - 00375 eb 0b jmp SHORT $LN20@JitEmitPre + 0038c eb 0b jmp SHORT $LN20@JitEmitPre $LN19@JitEmitPre: - 00377 48 c7 85 b8 03 + 0038e 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv189[rbp], 0 $LN20@JitEmitPre: ; 185 : return NULL; - 00382 33 c0 xor eax, eax - 00384 eb 79 jmp SHORT $LN1@JitEmitPre + 00399 33 c0 xor eax, eax + 0039b eb 79 jmp SHORT $LN1@JitEmitPre $LN7@JitEmitPre: ; 186 : } @@ -4639,51 +4754,51 @@ $LN7@JitEmitPre: ; 188 : ; 189 : PNATIVE_CODE_LINK StartLink = Block->Start; - 00386 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 0038a 48 8b 00 mov rax, QWORD PTR [rax] - 0038d 48 89 85 28 01 + 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 00 00 mov QWORD PTR StartLink$[rbp], rax ; 190 : Block->Start = Block->Start->Next; - 00394 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 00398 48 8b 00 mov rax, QWORD PTR [rax] - 0039b 48 8b 4d 68 mov rcx, QWORD PTR Block$[rbp] - 0039f 48 8b 00 mov rax, QWORD PTR [rax] - 003a2 48 89 01 mov QWORD PTR [rcx], rax + 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 ; 191 : if (Block->Start) - 003a5 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 003a9 48 83 38 00 cmp QWORD PTR [rax], 0 - 003ad 74 0f je SHORT $LN9@JitEmitPre + 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 ; 192 : Block->Start->Prev = NULL; - 003af 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] - 003b3 48 8b 00 mov rax, QWORD PTR [rax] - 003b6 48 c7 40 08 00 + 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 00 00 00 mov QWORD PTR [rax+8], 0 $LN9@JitEmitPre: ; 193 : delete StartLink; - 003be 48 8b 85 28 01 + 003d5 48 8b 85 28 01 00 00 mov rax, QWORD PTR StartLink$[rbp] - 003c5 48 89 85 a8 03 + 003dc 48 89 85 a8 03 00 00 mov QWORD PTR $T11[rbp], rax - 003cc 48 83 bd a8 03 + 003e3 48 83 bd a8 03 00 00 00 cmp QWORD PTR $T11[rbp], 0 - 003d4 74 1a je SHORT $LN21@JitEmitPre - 003d6 ba 01 00 00 00 mov edx, 1 - 003db 48 8b 8d a8 03 + 003eb 74 1a je SHORT $LN21@JitEmitPre + 003ed ba 01 00 00 00 mov edx, 1 + 003f2 48 8b 8d a8 03 00 00 mov rcx, QWORD PTR $T11[rbp] - 003e2 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 003e7 48 89 85 b8 03 + 003f9 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 003fe 48 89 85 b8 03 00 00 mov QWORD PTR tv202[rbp], rax - 003ee eb 0b jmp SHORT $LN22@JitEmitPre + 00405 eb 0b jmp SHORT $LN22@JitEmitPre $LN21@JitEmitPre: - 003f0 48 c7 85 b8 03 + 00407 48 c7 85 b8 03 00 00 00 00 00 00 mov QWORD PTR tv202[rbp], 0 $LN22@JitEmitPre: @@ -4691,16 +4806,16 @@ $LN22@JitEmitPre: ; 194 : ; 195 : return Block; - 003fb 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] + 00412 48 8b 45 68 mov rax, QWORD PTR Block$[rbp] $LN1@JitEmitPre: ; 196 : } - 003ff 48 8d a5 c8 03 + 00416 48 8d a5 c8 03 00 00 lea rsp, QWORD PTR [rbp+968] - 00406 5f pop rdi - 00407 5d pop rbp - 00408 c3 ret 0 + 0041d 5f pop rdi + 0041e 5d pop rbp + 0041f c3 ret 0 ?JitEmitPreRipMov@@YAPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@H@Z ENDP ; JitEmitPreRipMov _TEXT ENDS ; COMDAT text$x @@ -4886,11 +5001,11 @@ 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:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z _TEXT SEGMENT Link$ = 224 -XorData$ = 232 +JitData$ = 232 ?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z PROC ; JitMutateInstForAnd, COMDAT ; 129 : { @@ -4903,26 +5018,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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 130 : ; 131 : } - 00024 48 8d a5 c8 00 + 0003b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00042 5f pop rdi + 00043 5d pop rbp + 00044 c3 ret 0 ?JitMutateInstForAnd@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z ENDP ; JitMutateInstForAnd _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z _TEXT SEGMENT Link$ = 224 -XorData$ = 232 +JitData$ = 232 ?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z PROC ; JitMutateInstForOr, COMDAT ; 124 : { @@ -4935,22 +5056,28 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 125 : ; 126 : } - 00024 48 8d a5 c8 00 + 0003b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00042 5f pop rdi + 00043 5d pop rbp + 00044 c3 ret 0 ?JitMutateInstForOr@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z ENDP ; JitMutateInstForOr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z _TEXT SEGMENT FourByte$ = 4 @@ -4971,157 +5098,163 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 100 : ULONG FourByte = Link->RawDataSize / 4; - 00024 33 d2 xor edx, edx - 00026 48 8b 85 60 01 + 0003b 33 d2 xor edx, edx + 0003d 48 8b 85 60 01 00 00 mov rax, QWORD PTR Link$[rbp] - 0002d 8b 40 28 mov eax, DWORD PTR [rax+40] - 00030 b9 04 00 00 00 mov ecx, 4 - 00035 f7 f1 div ecx - 00037 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 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 ; 101 : ULONG TwoByte = (Link->RawDataSize - (FourByte * 4)) / 2; - 0003a 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0003d c1 e0 02 shl eax, 2 - 00040 48 8b 8d 60 01 + 00051 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00054 c1 e0 02 shl eax, 2 + 00057 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 00047 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 0004a 2b c8 sub ecx, eax - 0004c 8b c1 mov eax, ecx - 0004e 33 d2 xor edx, edx - 00050 b9 02 00 00 00 mov ecx, 2 - 00055 f7 f1 div ecx - 00057 89 45 24 mov DWORD PTR TwoByte$[rbp], eax + 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 ; 102 : ULONG OneByte = (Link->RawDataSize - (FourByte * 4) - (TwoByte * 2)); - 0005a 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 0005d c1 e0 02 shl eax, 2 - 00060 48 8b 8d 60 01 + 00071 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] + 00074 c1 e0 02 shl eax, 2 + 00077 48 8b 8d 60 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 00067 8b 49 28 mov ecx, DWORD PTR [rcx+40] - 0006a 2b c8 sub ecx, eax - 0006c 8b c1 mov eax, ecx - 0006e 8b 4d 24 mov ecx, DWORD PTR TwoByte$[rbp] - 00071 d1 e1 shl ecx, 1 - 00073 2b c1 sub eax, ecx - 00075 89 45 44 mov DWORD PTR OneByte$[rbp], eax + 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 ; 103 : ; 104 : PUCHAR Buffer = Link->RawData; - 00078 48 8b 85 60 01 + 0008f 48 8b 85 60 01 00 00 mov rax, QWORD PTR Link$[rbp] - 0007f 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 00083 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax + 00096 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 0009a 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax $LN2@JitMutateI: ; 105 : while (FourByte) - 00087 83 7d 04 00 cmp DWORD PTR FourByte$[rbp], 0 - 0008b 74 3a je SHORT $LN3@JitMutateI + 0009e 83 7d 04 00 cmp DWORD PTR FourByte$[rbp], 0 + 000a2 74 3a je SHORT $LN3@JitMutateI ; 106 : { ; 107 : *(PULONG)Buffer ^= JitData->Data[2 - FourByte]; - 0008d b8 02 00 00 00 mov eax, 2 - 00092 2b 45 04 sub eax, DWORD PTR FourByte$[rbp] - 00095 8b c0 mov eax, eax - 00097 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 0009b 48 8b 95 68 01 + 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 00 00 mov rdx, QWORD PTR JitData$[rbp] - 000a2 8b 04 82 mov eax, DWORD PTR [rdx+rax*4] - 000a5 8b 09 mov ecx, DWORD PTR [rcx] - 000a7 33 c8 xor ecx, eax - 000a9 8b c1 mov eax, ecx - 000ab 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 000af 89 01 mov DWORD PTR [rcx], eax + 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 ; 108 : Buffer += 4; - 000b1 48 8b 45 68 mov rax, QWORD PTR Buffer$[rbp] - 000b5 48 83 c0 04 add rax, 4 - 000b9 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax + 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 ; 109 : FourByte--; - 000bd 8b 45 04 mov eax, DWORD PTR FourByte$[rbp] - 000c0 ff c8 dec eax - 000c2 89 45 04 mov DWORD PTR FourByte$[rbp], eax + 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 ; 110 : } - 000c5 eb c0 jmp SHORT $LN2@JitMutateI + 000dc eb c0 jmp SHORT $LN2@JitMutateI $LN3@JitMutateI: ; 111 : ; 112 : if (TwoByte) - 000c7 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 - 000cb 74 32 je SHORT $LN4@JitMutateI + 000de 83 7d 24 00 cmp DWORD PTR TwoByte$[rbp], 0 + 000e2 74 32 je SHORT $LN4@JitMutateI ; 113 : { ; 114 : *(PUSHORT)Buffer ^= (USHORT)JitData->Data[3]; - 000cd b8 04 00 00 00 mov eax, 4 - 000d2 48 6b c0 03 imul rax, rax, 3 - 000d6 48 8b 8d 68 01 + 000e4 b8 04 00 00 00 mov eax, 4 + 000e9 48 6b c0 03 imul rax, rax, 3 + 000ed 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR JitData$[rbp] - 000dd 0f b7 04 01 movzx eax, WORD PTR [rcx+rax] - 000e1 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 000e5 0f b7 09 movzx ecx, WORD PTR [rcx] - 000e8 33 c8 xor ecx, eax - 000ea 8b c1 mov eax, ecx - 000ec 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 000f0 66 89 01 mov WORD PTR [rcx], ax + 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 ; 115 : Buffer += 2; - 000f3 48 8b 45 68 mov rax, QWORD PTR Buffer$[rbp] - 000f7 48 83 c0 02 add rax, 2 - 000fb 48 89 45 68 mov QWORD PTR Buffer$[rbp], rax + 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 $LN4@JitMutateI: ; 116 : } ; 117 : ; 118 : if (OneByte) - 000ff 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 - 00103 74 25 je SHORT $LN5@JitMutateI + 00116 83 7d 44 00 cmp DWORD PTR OneByte$[rbp], 0 + 0011a 74 25 je SHORT $LN5@JitMutateI ; 119 : *(PUCHAR)Buffer ^= (UCHAR)JitData->Data[3]; - 00105 b8 04 00 00 00 mov eax, 4 - 0010a 48 6b c0 03 imul rax, rax, 3 - 0010e 48 8b 8d 68 01 + 0011c b8 04 00 00 00 mov eax, 4 + 00121 48 6b c0 03 imul rax, rax, 3 + 00125 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR JitData$[rbp] - 00115 0f b6 04 01 movzx eax, BYTE PTR [rcx+rax] - 00119 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 0011d 0f b6 09 movzx ecx, BYTE PTR [rcx] - 00120 33 c8 xor ecx, eax - 00122 8b c1 mov eax, ecx - 00124 48 8b 4d 68 mov rcx, QWORD PTR Buffer$[rbp] - 00128 88 01 mov BYTE PTR [rcx], al + 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 $LN5@JitMutateI: ; 120 : ; 121 : } - 0012a 48 8d a5 48 01 + 00141 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] - 00131 5f pop rdi - 00132 5d pop rbp - 00133 c3 ret 0 + 00148 5f pop rdi + 00149 5d pop rbp + 0014a c3 ret 0 ?JitMutateInstForXor@@YAXPEAU_NATIVE_CODE_LINK@@PEAU_JIT_BITWISE_DATA@@@Z ENDP ; JitMutateInstForXor _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z _TEXT SEGMENT Ledger$ = 4 @@ -5142,176 +5275,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 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 + 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 01 00 00 mov rcx, QWORD PTR [rsp+424] - 0002c 48 8b 05 00 00 + 0002a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 58 01 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 58 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 70 : XED_FLAG_SET Ledger; ; 71 : Ledger.s.zf = TRUE; - 00049 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 0004c 83 c8 40 or eax, 64 ; 00000040H - 0004f 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 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 ; 72 : Ledger.s.sf = TRUE; - 00052 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 00055 0f ba e8 07 bts eax, 7 - 00059 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 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 ; 73 : Ledger.s.pf = TRUE; - 0005c 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 0005f 83 c8 04 or eax, 4 - 00062 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 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 ; 74 : Ledger.s.of = TRUE; - 00065 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 00068 0f ba e8 0b bts eax, 11 - 0006c 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 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 ; 75 : Ledger.s.cf = TRUE; - 0006f 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 00072 83 c8 01 or eax, 1 - 00075 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 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 ; 76 : Ledger.s.af = TRUE; - 00078 8b 45 04 mov eax, DWORD PTR Ledger$[rbp] - 0007b 83 c8 10 or eax, 16 - 0007e 89 45 04 mov DWORD PTR Ledger$[rbp], eax + 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 ; 77 : ; 78 : for (PNATIVE_CODE_LINK T = Link->Next; T; T = T->Next) - 00081 48 8b 85 80 01 + 0007f 48 8b 85 80 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00088 48 8b 00 mov rax, QWORD PTR [rax] - 0008b 48 89 45 28 mov QWORD PTR T$4[rbp], rax - 0008f eb 0b jmp SHORT $LN4@JitAreFlag + 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 $LN2@JitAreFlag: - 00091 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 00095 48 8b 00 mov rax, QWORD PTR [rax] - 00098 48 89 45 28 mov QWORD PTR T$4[rbp], rax + 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 $LN4@JitAreFlag: - 0009c 48 83 7d 28 00 cmp QWORD PTR T$4[rbp], 0 - 000a1 74 77 je SHORT $LN3@JitAreFlag + 0009a 48 83 7d 28 00 cmp QWORD PTR T$4[rbp], 0 + 0009f 74 77 je SHORT $LN3@JitAreFlag ; 79 : { ; 80 : if (T->Flags & CODE_FLAG_IS_LABEL) - 000a3 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 000a7 8b 40 18 mov eax, DWORD PTR [rax+24] - 000aa 83 e0 01 and eax, 1 - 000ad 85 c0 test eax, eax - 000af 74 02 je SHORT $LN5@JitAreFlag + 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 ; 81 : continue; - 000b1 eb de jmp SHORT $LN2@JitAreFlag + 000af eb de jmp SHORT $LN2@JitAreFlag $LN5@JitAreFlag: ; 82 : ; 83 : CONST XED_SIMPLE_FLAG* SimpleFlags = XedDecodedInstGetRflagsInfo(&T->XedInstruction); - 000b3 48 8b 45 28 mov rax, QWORD PTR T$4[rbp] - 000b7 48 83 c0 30 add rax, 48 ; 00000030H - 000bb 48 8b c8 mov rcx, rax - 000be e8 00 00 00 00 call xed_decoded_inst_get_rflags_info - 000c3 48 89 45 48 mov QWORD PTR SimpleFlags$5[rbp], rax + 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 ; 84 : CONST XED_FLAG_SET* FlagsRead = XedSimpleFlagGetReadFlagSet(SimpleFlags); - 000c7 48 8b 4d 48 mov rcx, QWORD PTR SimpleFlags$5[rbp] - 000cb e8 00 00 00 00 call xed_simple_flag_get_read_flag_set - 000d0 48 89 45 68 mov QWORD PTR FlagsRead$6[rbp], rax + 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 ; 85 : CONST XED_FLAG_SET* FlagsWritten = XedSimpleFlagGetWrittenFlagSet(SimpleFlags); - 000d4 48 8b 4d 48 mov rcx, QWORD PTR SimpleFlags$5[rbp] - 000d8 e8 00 00 00 00 call xed_simple_flag_get_written_flag_set - 000dd 48 89 85 88 00 + 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 00 00 mov QWORD PTR FlagsWritten$7[rbp], rax ; 86 : ; 87 : if (JitCheckFlagCollisions(FlagsRead, Ledger)) - 000e4 8b 55 04 mov edx, DWORD PTR Ledger$[rbp] - 000e7 48 8b 4d 68 mov rcx, QWORD PTR FlagsRead$6[rbp] - 000eb e8 00 00 00 00 call ?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z ; JitCheckFlagCollisions - 000f0 85 c0 test eax, eax - 000f2 74 04 je SHORT $LN6@JitAreFlag + 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 ; 88 : return FALSE; - 000f4 33 c0 xor eax, eax - 000f6 eb 24 jmp SHORT $LN1@JitAreFlag + 000f2 33 c0 xor eax, eax + 000f4 eb 24 jmp SHORT $LN1@JitAreFlag $LN6@JitAreFlag: ; 89 : ; 90 : JitUpdateConFlagsLedger(FlagsWritten, &Ledger); - 000f8 48 8d 55 04 lea rdx, QWORD PTR Ledger$[rbp] - 000fc 48 8b 8d 88 00 + 000f6 48 8d 55 04 lea rdx, QWORD PTR Ledger$[rbp] + 000fa 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR FlagsWritten$7[rbp] - 00103 e8 00 00 00 00 call ?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z ; JitUpdateConFlagsLedger + 00101 e8 00 00 00 00 call ?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z ; JitUpdateConFlagsLedger ; 91 : ; 92 : if (Ledger.flat == 0) - 00108 83 7d 04 00 cmp DWORD PTR Ledger$[rbp], 0 - 0010c 75 07 jne SHORT $LN7@JitAreFlag + 00106 83 7d 04 00 cmp DWORD PTR Ledger$[rbp], 0 + 0010a 75 07 jne SHORT $LN7@JitAreFlag ; 93 : return TRUE; - 0010e b8 01 00 00 00 mov eax, 1 - 00113 eb 07 jmp SHORT $LN1@JitAreFlag + 0010c b8 01 00 00 00 mov eax, 1 + 00111 eb 07 jmp SHORT $LN1@JitAreFlag $LN7@JitAreFlag: ; 94 : } - 00115 e9 77 ff ff ff jmp $LN2@JitAreFlag + 00113 e9 77 ff ff ff jmp $LN2@JitAreFlag $LN3@JitAreFlag: ; 95 : return FALSE; - 0011a 33 c0 xor eax, eax + 00118 33 c0 xor eax, eax $LN1@JitAreFlag: ; 96 : } - 0011c 48 8b f8 mov rdi, rax - 0011f 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00123 48 8d 15 00 00 + 0011a 48 8b f8 mov rdi, rax + 0011d 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00121 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z$rtcFrameData - 0012a e8 00 00 00 00 call _RTC_CheckStackVars - 0012f 48 8b c7 mov rax, rdi - 00132 48 8b 8d 58 01 + 00128 e8 00 00 00 00 call _RTC_CheckStackVars + 0012d 48 8b c7 mov rax, rdi + 00130 48 8b 8d 58 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00139 48 33 cd xor rcx, rbp - 0013c e8 00 00 00 00 call __security_check_cookie - 00141 48 8d a5 68 01 + 00137 48 33 cd xor rcx, rbp + 0013a e8 00 00 00 00 call __security_check_cookie + 0013f 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00148 5f pop rdi - 00149 5d pop rbp - 0014a c3 ret 0 + 00146 5f pop rdi + 00147 5d pop rbp + 00148 c3 ret 0 ?JitAreFlagsClobberedBeforeUse@@YAHPEAU_NATIVE_CODE_LINK@@@Z ENDP ; JitAreFlagsClobberedBeforeUse _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z _TEXT SEGMENT SimpleFlags$ = 8 @@ -5330,77 +5463,83 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 55 : CONST XED_SIMPLE_FLAG* SimpleFlags = XedDecodedInstGetRflagsInfo(&Link->XedInstruction); - 0001f 48 8b 85 40 01 + 00036 48 8b 85 40 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00026 48 83 c0 30 add rax, 48 ; 00000030H - 0002a 48 8b c8 mov rcx, rax - 0002d e8 00 00 00 00 call xed_decoded_inst_get_rflags_info - 00032 48 89 45 08 mov QWORD PTR SimpleFlags$[rbp], rax + 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 ; 56 : CONST XED_FLAG_SET* FlagsWritten = XedSimpleFlagGetWrittenFlagSet(SimpleFlags); - 00036 48 8b 4d 08 mov rcx, QWORD PTR SimpleFlags$[rbp] - 0003a e8 00 00 00 00 call xed_simple_flag_get_written_flag_set - 0003f 48 89 45 28 mov QWORD PTR FlagsWritten$[rbp], rax + 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 ; 57 : CONST XED_FLAG_SET* FlagsUndefined = XedSimpleFlagGetUndefinedFlagSet(SimpleFlags); - 00043 48 8b 4d 08 mov rcx, QWORD PTR SimpleFlags$[rbp] - 00047 e8 00 00 00 00 call xed_simple_flag_get_undefined_flag_set - 0004c 48 89 45 48 mov QWORD PTR FlagsUndefined$[rbp], rax + 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 ; 58 : ; 59 : return (FlagsWritten->s.zf && - 00050 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] - 00054 8b 00 mov eax, DWORD PTR [rax] - 00056 c1 e8 06 shr eax, 6 - 00059 83 e0 01 and eax, 1 - 0005c 85 c0 test eax, eax - 0005e 74 59 je SHORT $LN3@JitDoesIns - 00060 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] - 00064 8b 00 mov eax, DWORD PTR [rax] - 00066 c1 e8 07 shr eax, 7 - 00069 83 e0 01 and eax, 1 - 0006c 85 c0 test eax, eax - 0006e 74 49 je SHORT $LN3@JitDoesIns - 00070 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] - 00074 8b 00 mov eax, DWORD PTR [rax] - 00076 c1 e8 02 shr eax, 2 - 00079 83 e0 01 and eax, 1 - 0007c 85 c0 test eax, eax - 0007e 74 39 je SHORT $LN3@JitDoesIns - 00080 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] - 00084 8b 00 mov eax, DWORD PTR [rax] - 00086 c1 e8 0b shr eax, 11 - 00089 83 e0 01 and eax, 1 - 0008c 85 c0 test eax, eax - 0008e 74 29 je SHORT $LN3@JitDoesIns - 00090 48 8b 45 28 mov rax, QWORD PTR FlagsWritten$[rbp] - 00094 8b 00 mov eax, DWORD PTR [rax] - 00096 83 e0 01 and eax, 1 - 00099 85 c0 test eax, eax - 0009b 74 1c je SHORT $LN3@JitDoesIns - 0009d 48 8b 45 48 mov rax, QWORD PTR FlagsUndefined$[rbp] - 000a1 8b 00 mov eax, DWORD PTR [rax] - 000a3 c1 e8 04 shr eax, 4 - 000a6 83 e0 01 and eax, 1 - 000a9 85 c0 test eax, eax - 000ab 74 0c je SHORT $LN3@JitDoesIns - 000ad c7 85 14 01 00 + 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 00 01 00 00 00 mov DWORD PTR tv132[rbp], 1 - 000b7 eb 0a jmp SHORT $LN4@JitDoesIns + 000ce eb 0a jmp SHORT $LN4@JitDoesIns $LN3@JitDoesIns: - 000b9 c7 85 14 01 00 + 000d0 c7 85 14 01 00 00 00 00 00 00 mov DWORD PTR tv132[rbp], 0 $LN4@JitDoesIns: - 000c3 8b 85 14 01 00 + 000da 8b 85 14 01 00 00 mov eax, DWORD PTR tv132[rbp] ; 60 : FlagsWritten->s.sf && @@ -5411,15 +5550,15 @@ $LN4@JitDoesIns: ; 65 : ); ; 66 : } - 000c9 48 8d a5 28 01 + 000e0 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000d0 5f pop rdi - 000d1 5d pop rbp - 000d2 c3 ret 0 + 000e7 5f pop rdi + 000e8 5d pop rbp + 000e9 c3 ret 0 ?JitDoesInstOverriteConditionFlags@@YAHPEAU_NATIVE_CODE_LINK@@@Z ENDP ; JitDoesInstOverriteConditionFlags _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z _TEXT SEGMENT FlagsWritten$ = 224 @@ -5436,146 +5575,152 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 39 : if (FlagsWritten->s.zf) - 00024 48 8b 85 e0 00 + 0003b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 0002b 8b 00 mov eax, DWORD PTR [rax] - 0002d c1 e8 06 shr eax, 6 - 00030 83 e0 01 and eax, 1 - 00033 85 c0 test eax, eax - 00035 74 15 je SHORT $LN2@JitUpdateC + 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 ; 40 : Ledger->s.zf = FALSE; - 00037 48 8b 85 e8 00 + 0004e 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 0003e 8b 00 mov eax, DWORD PTR [rax] - 00040 83 e0 bf and eax, -65 ; ffffffbfH - 00043 48 8b 8d e8 00 + 00055 8b 00 mov eax, DWORD PTR [rax] + 00057 83 e0 bf and eax, -65 ; ffffffbfH + 0005a 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Ledger$[rbp] - 0004a 89 01 mov DWORD PTR [rcx], eax + 00061 89 01 mov DWORD PTR [rcx], eax $LN2@JitUpdateC: ; 41 : if (FlagsWritten->s.sf) - 0004c 48 8b 85 e0 00 + 00063 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 00053 8b 00 mov eax, DWORD PTR [rax] - 00055 c1 e8 07 shr eax, 7 - 00058 83 e0 01 and eax, 1 - 0005b 85 c0 test eax, eax - 0005d 74 16 je SHORT $LN3@JitUpdateC + 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 ; 42 : Ledger->s.sf = FALSE; - 0005f 48 8b 85 e8 00 + 00076 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 00066 8b 00 mov eax, DWORD PTR [rax] - 00068 0f ba f0 07 btr eax, 7 - 0006c 48 8b 8d e8 00 + 0007d 8b 00 mov eax, DWORD PTR [rax] + 0007f 0f ba f0 07 btr eax, 7 + 00083 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Ledger$[rbp] - 00073 89 01 mov DWORD PTR [rcx], eax + 0008a 89 01 mov DWORD PTR [rcx], eax $LN3@JitUpdateC: ; 43 : if (FlagsWritten->s.pf) - 00075 48 8b 85 e0 00 + 0008c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 0007c 8b 00 mov eax, DWORD PTR [rax] - 0007e c1 e8 02 shr eax, 2 - 00081 83 e0 01 and eax, 1 - 00084 85 c0 test eax, eax - 00086 74 15 je SHORT $LN4@JitUpdateC + 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 ; 44 : Ledger->s.pf = FALSE; - 00088 48 8b 85 e8 00 + 0009f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 0008f 8b 00 mov eax, DWORD PTR [rax] - 00091 83 e0 fb and eax, -5 ; fffffffbH - 00094 48 8b 8d e8 00 + 000a6 8b 00 mov eax, DWORD PTR [rax] + 000a8 83 e0 fb and eax, -5 ; fffffffbH + 000ab 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Ledger$[rbp] - 0009b 89 01 mov DWORD PTR [rcx], eax + 000b2 89 01 mov DWORD PTR [rcx], eax $LN4@JitUpdateC: ; 45 : if (FlagsWritten->s.of) - 0009d 48 8b 85 e0 00 + 000b4 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 000a4 8b 00 mov eax, DWORD PTR [rax] - 000a6 c1 e8 0b shr eax, 11 - 000a9 83 e0 01 and eax, 1 - 000ac 85 c0 test eax, eax - 000ae 74 16 je SHORT $LN5@JitUpdateC + 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 ; 46 : Ledger->s.of = FALSE; - 000b0 48 8b 85 e8 00 + 000c7 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 000b7 8b 00 mov eax, DWORD PTR [rax] - 000b9 0f ba f0 0b btr eax, 11 - 000bd 48 8b 8d e8 00 + 000ce 8b 00 mov eax, DWORD PTR [rax] + 000d0 0f ba f0 0b btr eax, 11 + 000d4 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Ledger$[rbp] - 000c4 89 01 mov DWORD PTR [rcx], eax + 000db 89 01 mov DWORD PTR [rcx], eax $LN5@JitUpdateC: ; 47 : if (FlagsWritten->s.cf) - 000c6 48 8b 85 e0 00 + 000dd 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 000cd 8b 00 mov eax, DWORD PTR [rax] - 000cf 83 e0 01 and eax, 1 - 000d2 85 c0 test eax, eax - 000d4 74 15 je SHORT $LN6@JitUpdateC + 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 ; 48 : Ledger->s.cf = FALSE; - 000d6 48 8b 85 e8 00 + 000ed 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 000dd 8b 00 mov eax, DWORD PTR [rax] - 000df 83 e0 fe and eax, -2 ; fffffffeH - 000e2 48 8b 8d e8 00 + 000f4 8b 00 mov eax, DWORD PTR [rax] + 000f6 83 e0 fe and eax, -2 ; fffffffeH + 000f9 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Ledger$[rbp] - 000e9 89 01 mov DWORD PTR [rcx], eax + 00100 89 01 mov DWORD PTR [rcx], eax $LN6@JitUpdateC: ; 49 : if (FlagsWritten->s.af) - 000eb 48 8b 85 e0 00 + 00102 48 8b 85 e0 00 00 00 mov rax, QWORD PTR FlagsWritten$[rbp] - 000f2 8b 00 mov eax, DWORD PTR [rax] - 000f4 c1 e8 04 shr eax, 4 - 000f7 83 e0 01 and eax, 1 - 000fa 85 c0 test eax, eax - 000fc 74 15 je SHORT $LN7@JitUpdateC + 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 ; 50 : Ledger->s.af = FALSE; - 000fe 48 8b 85 e8 00 + 00115 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Ledger$[rbp] - 00105 8b 00 mov eax, DWORD PTR [rax] - 00107 83 e0 ef and eax, -17 ; ffffffefH - 0010a 48 8b 8d e8 00 + 0011c 8b 00 mov eax, DWORD PTR [rax] + 0011e 83 e0 ef and eax, -17 ; ffffffefH + 00121 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Ledger$[rbp] - 00111 89 01 mov DWORD PTR [rcx], eax + 00128 89 01 mov DWORD PTR [rcx], eax $LN7@JitUpdateC: ; 51 : } - 00113 48 8d a5 c8 00 + 0012a 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0011a 5f pop rdi - 0011b 5d pop rbp - 0011c c3 ret 0 + 00131 5f pop rdi + 00132 5d pop rbp + 00133 c3 ret 0 ?JitUpdateConFlagsLedger@@YAXPEBTxed_flag_set_s@@PEAT1@@Z ENDP ; JitUpdateConFlagsLedger _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z _TEXT SEGMENT tv165 = 192 @@ -5593,134 +5738,140 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 28 : return ((FlagsRead->s.zf && FlagsRead->s.zf == Ledger.s.zf) || - 00023 48 8b 85 f0 00 + 0003a 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 0002a 8b 00 mov eax, DWORD PTR [rax] - 0002c c1 e8 06 shr eax, 6 - 0002f 83 e0 01 and eax, 1 - 00032 85 c0 test eax, eax - 00034 74 23 je SHORT $LN3@JitCheckFl - 00036 48 8b 85 f0 00 + 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 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 0003d 8b 00 mov eax, DWORD PTR [rax] - 0003f c1 e8 06 shr eax, 6 - 00042 83 e0 01 and eax, 1 - 00045 8b 8d f8 00 00 + 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 00 mov ecx, DWORD PTR Ledger$[rbp] - 0004b c1 e9 06 shr ecx, 6 - 0004e 83 e1 01 and ecx, 1 - 00051 3b c1 cmp eax, ecx - 00053 0f 84 05 01 00 + 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 00 je $LN5@JitCheckFl $LN3@JitCheckFl: - 00059 48 8b 85 f0 00 + 00070 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 00060 8b 00 mov eax, DWORD PTR [rax] - 00062 c1 e8 07 shr eax, 7 - 00065 83 e0 01 and eax, 1 - 00068 85 c0 test eax, eax - 0006a 74 23 je SHORT $LN4@JitCheckFl - 0006c 48 8b 85 f0 00 + 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 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 00073 8b 00 mov eax, DWORD PTR [rax] - 00075 c1 e8 07 shr eax, 7 - 00078 83 e0 01 and eax, 1 - 0007b 8b 8d f8 00 00 + 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 00 mov ecx, DWORD PTR Ledger$[rbp] - 00081 c1 e9 07 shr ecx, 7 - 00084 83 e1 01 and ecx, 1 - 00087 3b c1 cmp eax, ecx - 00089 0f 84 cf 00 00 + 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 00 je $LN5@JitCheckFl $LN4@JitCheckFl: - 0008f 48 8b 85 f0 00 + 000a6 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 00096 8b 00 mov eax, DWORD PTR [rax] - 00098 c1 e8 02 shr eax, 2 - 0009b 83 e0 01 and eax, 1 - 0009e 85 c0 test eax, eax - 000a0 74 23 je SHORT $LN6@JitCheckFl - 000a2 48 8b 85 f0 00 + 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 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 000a9 8b 00 mov eax, DWORD PTR [rax] - 000ab c1 e8 02 shr eax, 2 - 000ae 83 e0 01 and eax, 1 - 000b1 8b 8d f8 00 00 + 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 00 mov ecx, DWORD PTR Ledger$[rbp] - 000b7 c1 e9 02 shr ecx, 2 - 000ba 83 e1 01 and ecx, 1 - 000bd 3b c1 cmp eax, ecx - 000bf 0f 84 99 00 00 + 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 00 je $LN5@JitCheckFl $LN6@JitCheckFl: - 000c5 48 8b 85 f0 00 + 000dc 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 000cc 8b 00 mov eax, DWORD PTR [rax] - 000ce c1 e8 0b shr eax, 11 - 000d1 83 e0 01 and eax, 1 - 000d4 85 c0 test eax, eax - 000d6 74 1f je SHORT $LN7@JitCheckFl - 000d8 48 8b 85 f0 00 + 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 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 000df 8b 00 mov eax, DWORD PTR [rax] - 000e1 c1 e8 0b shr eax, 11 - 000e4 83 e0 01 and eax, 1 - 000e7 8b 8d f8 00 00 + 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 00 mov ecx, DWORD PTR Ledger$[rbp] - 000ed c1 e9 0b shr ecx, 11 - 000f0 83 e1 01 and ecx, 1 - 000f3 3b c1 cmp eax, ecx - 000f5 74 67 je SHORT $LN5@JitCheckFl + 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 $LN7@JitCheckFl: - 000f7 48 8b 85 f0 00 + 0010e 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 000fe 8b 00 mov eax, DWORD PTR [rax] - 00100 83 e0 01 and eax, 1 - 00103 85 c0 test eax, eax - 00105 74 19 je SHORT $LN8@JitCheckFl - 00107 48 8b 85 f0 00 + 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 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 0010e 8b 00 mov eax, DWORD PTR [rax] - 00110 83 e0 01 and eax, 1 - 00113 8b 8d f8 00 00 + 00125 8b 00 mov eax, DWORD PTR [rax] + 00127 83 e0 01 and eax, 1 + 0012a 8b 8d f8 00 00 00 mov ecx, DWORD PTR Ledger$[rbp] - 00119 83 e1 01 and ecx, 1 - 0011c 3b c1 cmp eax, ecx - 0011e 74 3e je SHORT $LN5@JitCheckFl + 00130 83 e1 01 and ecx, 1 + 00133 3b c1 cmp eax, ecx + 00135 74 3e je SHORT $LN5@JitCheckFl $LN8@JitCheckFl: - 00120 48 8b 85 f0 00 + 00137 48 8b 85 f0 00 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 00127 8b 00 mov eax, DWORD PTR [rax] - 00129 c1 e8 04 shr eax, 4 - 0012c 83 e0 01 and eax, 1 - 0012f 85 c0 test eax, eax - 00131 74 1f je SHORT $LN9@JitCheckFl - 00133 48 8b 85 f0 00 + 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 00 00 mov rax, QWORD PTR FlagsRead$[rbp] - 0013a 8b 00 mov eax, DWORD PTR [rax] - 0013c c1 e8 04 shr eax, 4 - 0013f 83 e0 01 and eax, 1 - 00142 8b 8d f8 00 00 + 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 00 mov ecx, DWORD PTR Ledger$[rbp] - 00148 c1 e9 04 shr ecx, 4 - 0014b 83 e1 01 and ecx, 1 - 0014e 3b c1 cmp eax, ecx - 00150 74 0c je SHORT $LN5@JitCheckFl + 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 $LN9@JitCheckFl: - 00152 c7 85 c0 00 00 + 00169 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv165[rbp], 0 - 0015c eb 0a jmp SHORT $LN10@JitCheckFl + 00173 eb 0a jmp SHORT $LN10@JitCheckFl $LN5@JitCheckFl: - 0015e c7 85 c0 00 00 + 00175 c7 85 c0 00 00 00 01 00 00 00 mov DWORD PTR tv165[rbp], 1 $LN10@JitCheckFl: - 00168 8b 85 c0 00 00 + 0017f 8b 85 c0 00 00 00 mov eax, DWORD PTR tv165[rbp] ; 29 : (FlagsRead->s.sf && FlagsRead->s.sf == Ledger.s.sf) || @@ -5731,15 +5882,15 @@ $LN10@JitCheckFl: ; 34 : ); ; 35 : } - 0016e 48 8d a5 d8 00 + 00185 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 00175 5f pop rdi - 00176 5d pop rbp - 00177 c3 ret 0 + 0018c 5f pop rdi + 0018d 5d pop rbp + 0018e c3 ret 0 ?JitCheckFlagCollisions@@YAHPEBTxed_flag_set_s@@T1@@Z ENDP ; JitCheckFlagCollisions _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT RawData$ = 4 @@ -5760,98 +5911,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 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 + 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 01 00 00 mov rcx, QWORD PTR [rsp+424] - 0002c 48 8b 05 00 00 + 0002a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 40 01 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 19 : UCHAR RawData[] = { 0x9D }; - 00049 c6 45 04 9d mov BYTE PTR RawData$[rbp], 157 ; 0000009dH + 00047 c6 45 04 9d mov BYTE PTR RawData$[rbp], 157 ; 0000009dH ; 20 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, 1); - 0004d b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00052 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00057 48 89 85 28 01 + 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 00 00 mov QWORD PTR $T5[rbp], rax - 0005e 48 83 bd 28 01 + 0005c 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00066 74 2c je SHORT $LN3@JitEmitPop - 00068 c7 44 24 20 00 + 00064 74 2c je SHORT $LN3@JitEmitPop + 00066 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00070 41 b9 01 00 00 + 0006e 41 b9 01 00 00 00 mov r9d, 1 - 00076 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] - 0007a ba 04 00 00 00 mov edx, 4 - 0007f 48 8b 8d 28 01 + 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 00 00 mov rcx, QWORD PTR $T5[rbp] - 00086 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 0008b 48 89 85 38 01 + 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 00 00 mov QWORD PTR tv79[rbp], rax - 00092 eb 0b jmp SHORT $LN4@JitEmitPop + 00090 eb 0b jmp SHORT $LN4@JitEmitPop $LN3@JitEmitPop: - 00094 48 c7 85 38 01 + 00092 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitPop: - 0009f 48 8b 85 38 01 + 0009d 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000a6 48 89 85 08 01 + 000a4 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000ad 48 8b 85 08 01 + 000ab 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000b4 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000b2 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 21 : XedDecode(&Link->XedInstruction, Link->RawData, 1); - 000b8 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] - 000bc 48 83 c0 30 add rax, 48 ; 00000030H - 000c0 41 b8 01 00 00 + 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 00 mov r8d, 1 - 000c6 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000ca 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 000ce 48 8b c8 mov rcx, rax - 000d1 e8 00 00 00 00 call xed_decode + 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 ; 22 : NcAppendToBlock(Block, Link); - 000d6 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 000da 48 8b 8d 70 01 + 000d4 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 000d8 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 000e1 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 000df e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 23 : return TRUE; - 000e6 b8 01 00 00 00 mov eax, 1 + 000e4 b8 01 00 00 00 mov eax, 1 ; 24 : } - 000eb 8b f8 mov edi, eax - 000ed 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 000f1 48 8d 15 00 00 + 000e9 8b f8 mov edi, eax + 000eb 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 000ef 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData - 000f8 e8 00 00 00 00 call _RTC_CheckStackVars - 000fd 8b c7 mov eax, edi - 000ff 48 8b 8d 40 01 + 000f6 e8 00 00 00 00 call _RTC_CheckStackVars + 000fb 8b c7 mov eax, edi + 000fd 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00106 48 33 cd xor rcx, rbp - 00109 e8 00 00 00 00 call __security_check_cookie - 0010e 48 8d a5 58 01 + 00104 48 33 cd xor rcx, rbp + 00107 e8 00 00 00 00 call __security_check_cookie + 0010c 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 + 00113 5f pop rdi + 00114 5d pop rbp + 00115 c3 ret 0 ?JitEmitPopfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; JitEmitPopfqInst _TEXT ENDS ; COMDAT text$x @@ -5908,7 +6059,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:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT RawData$ = 4 @@ -5929,98 +6080,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 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 + 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 01 00 00 mov rcx, QWORD PTR [rsp+424] - 0002c 48 8b 05 00 00 + 0002a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 40 01 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__8546B33E_Jit@cpp - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__DD050276_Jit@cpp + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 10 : UCHAR RawData[] = { 0x9C }; - 00049 c6 45 04 9c mov BYTE PTR RawData$[rbp], 156 ; 0000009cH + 00047 c6 45 04 9c mov BYTE PTR RawData$[rbp], 156 ; 0000009cH ; 11 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, 1); - 0004d b9 f0 00 00 00 mov ecx, 240 ; 000000f0H - 00052 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new - 00057 48 89 85 28 01 + 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 00 00 mov QWORD PTR $T5[rbp], rax - 0005e 48 83 bd 28 01 + 0005c 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00066 74 2c je SHORT $LN3@JitEmitPus - 00068 c7 44 24 20 00 + 00064 74 2c je SHORT $LN3@JitEmitPus + 00066 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00070 41 b9 01 00 00 + 0006e 41 b9 01 00 00 00 mov r9d, 1 - 00076 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp] - 0007a ba 04 00 00 00 mov edx, 4 - 0007f 48 8b 8d 28 01 + 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 00 00 mov rcx, QWORD PTR $T5[rbp] - 00086 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 0008b 48 89 85 38 01 + 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 00 00 mov QWORD PTR tv79[rbp], rax - 00092 eb 0b jmp SHORT $LN4@JitEmitPus + 00090 eb 0b jmp SHORT $LN4@JitEmitPus $LN3@JitEmitPus: - 00094 48 c7 85 38 01 + 00092 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitPus: - 0009f 48 8b 85 38 01 + 0009d 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000a6 48 89 85 08 01 + 000a4 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000ad 48 8b 85 08 01 + 000ab 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000b4 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000b2 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 12 : XedDecode(&Link->XedInstruction, Link->RawData, 1); - 000b8 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] - 000bc 48 83 c0 30 add rax, 48 ; 00000030H - 000c0 41 b8 01 00 00 + 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 00 mov r8d, 1 - 000c6 48 8b 4d 28 mov rcx, QWORD PTR Link$[rbp] - 000ca 48 8b 51 20 mov rdx, QWORD PTR [rcx+32] - 000ce 48 8b c8 mov rcx, rax - 000d1 e8 00 00 00 00 call xed_decode + 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 ; 13 : NcAppendToBlock(Block, Link); - 000d6 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 000da 48 8b 8d 70 01 + 000d4 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 000d8 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 000e1 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 000df e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 14 : return TRUE; - 000e6 b8 01 00 00 00 mov eax, 1 + 000e4 b8 01 00 00 00 mov eax, 1 ; 15 : } - 000eb 8b f8 mov edi, eax - 000ed 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 000f1 48 8d 15 00 00 + 000e9 8b f8 mov edi, eax + 000eb 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 000ef 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData - 000f8 e8 00 00 00 00 call _RTC_CheckStackVars - 000fd 8b c7 mov eax, edi - 000ff 48 8b 8d 40 01 + 000f6 e8 00 00 00 00 call _RTC_CheckStackVars + 000fb 8b c7 mov eax, edi + 000fd 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00106 48 33 cd xor rcx, rbp - 00109 e8 00 00 00 00 call __security_check_cookie - 0010e 48 8d a5 58 01 + 00104 48 33 cd xor rcx, rbp + 00107 e8 00 00 00 00 call __security_check_cookie + 0010c 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 + 00113 5f pop rdi + 00114 5d pop rbp + 00115 c3 ret 0 ?JitEmitPushfqInst@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; JitEmitPushfqInst _TEXT ENDS ; COMDAT text$x @@ -6090,26 +6241,32 @@ $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 8d e0 00 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0001e e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ - 00023 8b 85 e8 00 00 + 00035 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 0003a 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00029 83 e0 01 and eax, 1 - 0002c 85 c0 test eax, eax - 0002e 74 11 je SHORT $LN2@scalar - 00030 ba 30 00 00 00 mov edx, 48 ; 00000030H - 00035 48 8b 8d e0 00 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00041 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d a5 c8 00 + 0005f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 ??_G_NATIVE_CODE_BLOCK@@QEAAPEAXI@Z ENDP ; _NATIVE_CODE_BLOCK::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -6124,26 +6281,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 85 e0 00 + 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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002d 5f pop rdi - 0002e 5d pop rbp - 0002f c3 ret 0 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 { +; 1343 : constexpr _Ty1& _Get_first() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6152,32 +6315,38 @@ $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 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] -; 1379 : } +; 1345 : } - 00026 48 8d a5 c8 00 + 0003d 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 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 { +; 1731 : _Alty& _Getal() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6186,28 +6355,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 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 + 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 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 + 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 -; 1819 : } +; 1733 : } - 0002e 48 8d a5 c8 00 + 00046 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 + 0004d 5f pop rdi + 0004e 5d pop rbp + 0004f 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ _TEXT SEGMENT _My_data$ = 8 @@ -6220,7 +6396,7 @@ 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 +; 1685 : void _Tidy() noexcept { // free all storage $LN4: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6229,117 +6405,123 @@ $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 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1757 : pointer& _Myfirst = _My_data._Myfirst; +; 1687 : 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 + 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 -; 1758 : pointer& _Mylast = _My_data._Mylast; +; 1688 : 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 + 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 -; 1759 : pointer& _Myend = _My_data._Myend; +; 1689 : 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 + 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 -; 1760 : -; 1761 : _My_data._Orphan_all(); +; 1690 : +; 1691 : _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 + 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 -; 1762 : -; 1763 : if (_Myfirst) { // destroy and deallocate old array +; 1692 : +; 1693 : 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 + 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 00 je $LN2@Tidy -; 1764 : _Destroy(_Myfirst, _Mylast); +; 1694 : _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 + 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 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 + 00091 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)); +; 1695 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); - 0007f 48 8b 8d 70 01 + 00096 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 + 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 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 + 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 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 + 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 00 00 mov QWORD PTR tv86[rbp], rax - 000bc 4c 8b 85 40 01 + 000d3 4c 8b 85 40 01 00 00 mov r8, QWORD PTR tv88[rbp] - 000c3 48 8b 95 48 01 + 000da 48 8b 95 48 01 00 00 mov rdx, QWORD PTR tv86[rbp] - 000ca 48 8b 8d 38 01 + 000e1 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 + 000e8 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate -; 1766 : -; 1767 : _Myfirst = nullptr; +; 1696 : +; 1697 : _Myfirst = pointer(); - 000d6 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 000da 48 c7 00 00 00 + 000ed 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000f1 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 1768 : _Mylast = nullptr; +; 1698 : _Mylast = pointer(); - 000e1 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 000e5 48 c7 00 00 00 + 000f8 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 000fc 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 1769 : _Myend = nullptr; +; 1699 : _Myend = pointer(); - 000ec 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] - 000f0 48 c7 00 00 00 + 00103 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 00107 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 $LN2@Tidy: -; 1770 : } -; 1771 : } +; 1700 : } +; 1701 : } - 000f7 48 8d a5 58 01 + 0010e 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 + 00115 5f pop rdi + 00116 5d pop rbp + 00117 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z _TEXT SEGMENT this$ = 224 @@ -6347,7 +6529,7 @@ _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) { +; 1611 : void _Destroy(pointer _First, pointer _Last) { // destroy [_First, _Last) using allocator $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -6358,34 +6540,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 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 + 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 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 + 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 00 00 mov rdx, QWORD PTR _Last$[rbp] - 0003f 48 8b 8d e8 00 + 00056 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 > + 0005d e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > -; 1681 : } +; 1613 : } - 0004b 48 8d a5 c8 00 + 00062 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 + 00069 5f pop rdi + 0006a 5d pop rbp + 0006b 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ _TEXT SEGMENT _Alproxy$ = 8 @@ -6395,7 +6582,7 @@ __$ArrayPad$ = 280 this$ = 320 ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::vector >::~vector >, COMDAT -; 711 : _CONSTEXPR20_CONTAINER ~vector() noexcept { +; 672 : ~vector() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6404,74 +6591,75 @@ $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 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 + 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] - 0002c 48 8b 05 00 00 + 0002a 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 + 00031 48 33 c5 xor rax, rbp + 00034 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 + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 712 : _Tidy(); +; 673 : _Tidy(); - 00049 48 8b 8d 40 01 + 00047 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 + 0004e e8 00 00 00 00 call ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector >::_Tidy -; 713 : #if _ITERATOR_DEBUG_LEVEL != 0 -; 714 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); +; 674 : #if _ITERATOR_DEBUG_LEVEL != 0 +; 675 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); - 00055 48 8b 8d 40 01 + 00053 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 + 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 -; 715 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); +; 676 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); - 00075 48 c7 85 04 01 + 00073 48 c7 85 04 01 00 00 00 00 00 00 mov QWORD PTR $T4[rbp], 0 - 00080 48 8b 85 40 01 + 0007e 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 00087 48 8d 95 04 01 + 00085 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 > + 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 > -; 716 : #endif // _ITERATOR_DEBUG_LEVEL != 0 -; 717 : } +; 677 : #endif // _ITERATOR_DEBUG_LEVEL != 0 +; 678 : } - 000a2 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000a6 48 8d 15 00 00 + 000a0 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000a4 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 + 000ab e8 00 00 00 00 call _RTC_CheckStackVars + 000b0 90 npad 1 + 000b1 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 + 000b8 48 33 cd xor rcx, rbp + 000bb e8 00 00 00 00 call __security_check_cookie + 000c0 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 + 000c7 5f pop rdi + 000c8 5d pop rbp + 000c9 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z _TEXT SEGMENT this$ = 224 @@ -6479,7 +6667,7 @@ _Ptr$ = 232 _Count$ = 240 ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z PROC ; std::allocator::deallocate, COMDAT -; 833 : _CONSTEXPR20_DYNALLOC void deallocate(_Ty* const _Ptr, const size_t _Count) { +; 801 : void deallocate(_Ty* const _Ptr, const size_t _Count) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -6490,28 +6678,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 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 + 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 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 + 00047 48 c1 e0 02 shl rax, 2 + 0004b 48 8b d0 mov rdx, rax + 0004e 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> + 00055 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> -; 836 : } +; 804 : } - 00043 48 8d a5 c8 00 + 0005a 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 + 00061 5f pop rdi + 00062 5d pop rbp + 00063 c3 ret 0 ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ENDP ; std::allocator::deallocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -6528,30 +6722,36 @@ $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 8d e0 00 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0001e e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK - 00023 8b 85 e8 00 00 + 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 00 mov eax, DWORD PTR __flags$[rbp] - 00029 83 e0 01 and eax, 1 - 0002c 85 c0 test eax, eax - 0002e 74 11 je SHORT $LN2@scalar - 00030 ba f0 00 00 00 mov edx, 240 ; 000000f0H - 00035 48 8b 8d e0 00 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00041 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d a5 c8 00 + 0005f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z ENDP ; _NATIVE_CODE_LINK::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -6562,7 +6762,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -6574,141 +6774,147 @@ $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 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 + 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 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -6719,7 +6925,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -6731,141 +6937,147 @@ $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 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 + 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 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -6876,7 +7088,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -6887,98 +7099,104 @@ $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 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 + 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 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 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 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 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 $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 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 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de 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.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -6995,73 +7213,79 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 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__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -7080,7 +7304,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : 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 @@ -7091,443 +7315,371 @@ $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 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 + 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 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 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 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 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 -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 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 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 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 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 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 -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 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 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 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.29.30037\include\xmemory -; COMDAT ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ +; 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 _TEXT SEGMENT -_Lock$ = 4 -__$ArrayPad$ = 216 -this$ = 256 -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_locked, COMDAT +_Lock$4 = 4 +_Pnext$5 = 40 +__$ArrayPad$ = 248 +this$ = 288 +?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT -; 1095 : void _Orphan_all_locked() noexcept { +; 1205 : inline void _Container_base12::_Orphan_all() noexcept { -$LN3: +$LN7: 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 28 01 + 00 00 sub rsp, 296 ; 00000128H 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 + 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 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 d8 00 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 f8 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 + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00042 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 +; 1206 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1207 : if (_Myproxy) { // proxy allocated, drain it -; 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 + 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 -; 1220 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all_unlocked() noexcept { +; 1208 : _Lockit _Lock(_LOCK_DEBUG); -$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 + 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 -; 1221 : for (auto& _Pnext = _Myproxy->_Myfirstiter; _Pnext; _Pnext = _Pnext->_Mynextiter) { // TRANSITION, VSO-1269037 +; 1209 : +; 1210 : for (auto _Pnext = &_Myproxy->_Myfirstiter; *_Pnext; *_Pnext = (*_Pnext)->_Mynextiter) { - 0001f 48 8b 85 00 01 + 00063 48 8b 85 20 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 + 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 $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 + 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 $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 + 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 -; 1222 : _Pnext->_Myproxy = nullptr; +; 1211 : (*_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 + 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 00 00 mov QWORD PTR [rax], 0 -; 1223 : } +; 1212 : } - 0005d eb d4 jmp SHORT $LN2@Orphan_all + 000a1 eb d4 jmp SHORT $LN2@Orphan_all $LN3@Orphan_all: -; 1224 : _Myproxy->_Myfirstiter = nullptr; +; 1213 : +; 1214 : _Myproxy->_Myfirstiter = nullptr; - 0005f 48 8b 85 00 01 + 000a3 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00066 48 8b 00 mov rax, QWORD PTR [rax] - 00069 48 c7 40 08 00 + 000aa 48 8b 00 mov rax, QWORD PTR [rax] + 000ad 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 -; 1225 : } - - 00071 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00078 5f pop rdi - 00079 5d pop rbp - 0007a c3 ret 0 -?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ENDP ; std::_Container_base12::_Orphan_all_unlocked -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ -_TEXT SEGMENT -this$ = 224 -?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT - -; 1227 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all() noexcept { - -$LN4: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1228 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1229 : if (_Myproxy) { // proxy allocated, drain it +; 1215 : } - 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: + 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: -; 1237 : } -; 1238 : } -; 1239 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1240 : } +; 1216 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1217 : } - 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 + 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 ?_Orphan_all@_Container_base12@std@@QEAAXXZ ENDP ; std::_Container_base12::_Orphan_all _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z _TEXT SEGMENT _Ptr_user$ = 8 @@ -7538,7 +7690,7 @@ _Ptr$ = 352 _Bytes$ = 360 ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z PROC ; std::_Adjust_manually_vector_aligned, COMDAT -; 153 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { +; 132 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { $LN21: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -7548,186 +7700,192 @@ $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 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 + 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 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 + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 83 c0 2f add rax, 47 ; 0000002fH + 00049 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR _Bytes$[rbp] - 00039 48 89 01 mov QWORD PTR [rcx], rax + 00050 48 89 01 mov QWORD PTR [rcx], rax -; 156 : -; 157 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); +; 135 : +; 136 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); - 0003c 48 8b 85 60 01 + 00053 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 + 0005a 48 8b 00 mov rax, QWORD PTR [rax] + 0005d 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax -; 158 : const uintptr_t _Ptr_container = _Ptr_user[-1]; +; 137 : 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 + 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 $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 +; 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 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 + 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 $LN14@Adjust_man: $LN7@Adjust_man: - 0007e 8b 05 00 00 00 + 00095 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 + 0009b 83 c0 09 add eax, 9 + 0009e 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 + 000a5 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 000aa 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 + 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 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 + 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 $LN19@Adjust_man: - 000bf 8b 05 00 00 00 + 000d6 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 + 000dc 83 c0 09 add eax, 9 + 000df 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 + 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 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 + 000f9 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 + 00100 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 + 00106 33 c0 xor eax, eax + 00108 85 c0 test eax, eax + 0010a 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 + 0010c 33 c0 xor eax, eax + 0010e 85 c0 test eax, eax + 00110 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*); +; 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*); - 000ff 48 c7 45 48 10 + 00116 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; +; 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; - 00107 48 8b 85 60 01 + 0011e 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 + 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 $LN10@Adjust_man: -; 172 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); +; 151 : _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 + 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 $LN16@Adjust_man: $LN13@Adjust_man: - 0012c 8b 05 00 00 00 + 00143 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 + 00149 83 c0 13 add eax, 19 + 0014c 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 + 00153 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 00158 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 + 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 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 + 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 $LN20@Adjust_man: - 0016d 8b 05 00 00 00 + 00184 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 + 0018a 83 c0 13 add eax, 19 + 0018d 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 + 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 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 + 001a7 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 + 001ae 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 + 001b4 33 c0 xor eax, eax + 001b6 85 c0 test eax, eax + 001b8 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 + 001ba 33 c0 xor eax, eax + 001bc 85 c0 test eax, eax + 001be 0f 85 6f ff ff ff jne $LN10@Adjust_man -; 173 : _Ptr = reinterpret_cast(_Ptr_container); +; 152 : _Ptr = reinterpret_cast(_Ptr_container); - 001ad 48 8b 85 60 01 + 001c4 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 + 001cb 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 001cf 48 89 08 mov QWORD PTR [rax], rcx -; 174 : } +; 153 : } - 001bb 48 8d a5 48 01 + 001d2 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 + 001d9 5f pop rdi + 001da 5d pop rbp + 001db 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 @@ -7750,34 +7908,40 @@ $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 8d 0d 00 00 + 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:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 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 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -7794,18 +7958,25 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -7820,18 +7991,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -7846,18 +8024,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Jit.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Jit.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -7870,14 +8055,21 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 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 63c27c4..91469f3 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.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 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 -__02E23235_vcruntime_new@h DB 01H +__8906660C_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,55 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__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 __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__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 +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_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 msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -95,9 +94,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@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@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 @@ -115,67 +114,68 @@ 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+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 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+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT rtc$TMZ @@ -196,58 +196,53 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@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' +??_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' 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 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -292,38 +287,90 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$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 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 025051801H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H 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 -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$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 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 -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$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 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 @@ -333,7 +380,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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -344,7 +391,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -356,141 +403,147 @@ $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 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 + 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 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -501,7 +554,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -513,141 +566,147 @@ $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 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 + 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 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -658,7 +717,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -669,98 +728,104 @@ $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 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 + 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 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 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 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 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 $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 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 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de 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.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -777,73 +842,79 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 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__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -862,7 +933,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : 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 @@ -873,251 +944,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 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 + 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 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 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 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 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 -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 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 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 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 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 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 -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 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 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1140,34 +1211,40 @@ $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 8d 0d 00 00 + 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:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 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 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Junk.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Junk.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1184,18 +1261,25 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Junk.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Junk.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1210,18 +1294,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Junk.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Junk.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1236,18 +1327,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Junk.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Junk.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1260,14 +1358,21 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 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 b65a12d..1b1976e 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.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 include listing.inc @@ -8,7 +8,6 @@ INCLUDELIB OLDNAMES PUBLIC ?TestBuffer@@3PAEA ; TestBuffer PUBLIC ?TestBufferSize@@3KA ; TestBufferSize PUBLIC ?meme1@@3PAEA ; meme1 -PUBLIC ?meme2@@3PAEA ; meme2 msvcjmc SEGMENT __B2D2BA86_ctype@h DB 01H __79C7FC57_basetsd@h DB 01H @@ -31,64 +30,63 @@ __A118E6DC_stralign@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H -__02E23235_vcruntime_new@h DB 01H +__8906660C_vcruntime_new@h DB 01H +__741AE07E_corecrt_math@h DB 01H +__F8119FB4_cstdlib DB 01H +__0A4FAB91_cmath DB 01H __C6E16F6F_corecrt_wconio@h DB 01H __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H -__741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__5DDA4519_cstddef DB 01H +__85A9AA98_type_traits DB 01H +__4324C6B3_xutility DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__E75714E4_vcruntime_exception@h DB 01H +__E4152856_exception DB 01H +__F2870A2C_limits DB 01H +__A58979FC_xmemory DB 01H +__AC6CB2D0_tuple DB 01H +__E0552A5D_xpolymorphic_allocator@h DB 01H +__D15AFF60_xstring 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 +__88EC1446_fstream DB 01H +__3AFA803E_string DB 01H +__BB81F87E_xlocmon DB 01H __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__0A045E7B_NativeCode@h DB 01H -__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 +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_xed-decoded-inst-api@h DB 01H +__4031338C_Main@cpp DB 01H +__CF1C1A3F_utility 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 +__38038D2D_xstddef DB 01H +__EE19A480_xatomic@h DB 01H msvcjmc ENDS _DATA SEGMENT ?TestBuffer@@3PAEA DB 048H ; TestBuffer @@ -97,16 +95,12 @@ _DATA SEGMENT DB 048H DB 033H DB 0c0H - DB 0ebH - DB 0eH DB 048H DB 033H DB 0c0H DB 048H DB 033H DB 0c0H - DB 07eH - DB 06H DB 048H DB 033H DB 0c0H @@ -119,8 +113,6 @@ _DATA SEGMENT DB 048H DB 033H DB 0c0H - DB 0ebH - DB 0f8H DB 050H DB 048H DB 0b8H @@ -137,14 +129,56 @@ _DATA SEGMENT DB 04H DB 024H DB 0c3H -?meme2@@3PAEA DB 0c3H ; meme2 - ORG $+1 -?TestBufferSize@@3KA DD 02eH ; TestBufferSize -?meme1@@3PAEA DB 0b8H ; meme1 - DB 0deH +?TestBufferSize@@3KA DD 028H ; TestBufferSize + ORG $+4 +?meme1@@3PAEA DB 031H ; meme1 DB 0c0H - DB 0acH - DB 0eH + DB 083H + DB 0c0H + DB 01H + DB 083H + DB 0c0H + DB 01H + DB 083H + DB 0c0H + DB 01H + DB 083H + DB 0c0H + DB 01H + DB 083H + DB 0c0H + DB 01H + DB 083H + DB 0c0H + DB 01H + DB 083H + DB 0c0H + DB 01H + DB 083H + DB 0c0H + DB 01H + DB 083H + DB 0c0H + DB 01H + DB 083H + DB 0c0H + DB 01H + DB 083H + DB 0c0H + DB 01H + DB 083H + DB 0c0H + DB 01H + DB 083H + DB 0c0H + DB 01H + DB 083H + DB 0c0H + DB 01H + DB 083H + DB 0c0H + DB 01H + DB 0c3H _DATA ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -153,14 +187,85 @@ PUBLIC ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ; __empty_global_d PUBLIC __local_stdio_printf_options PUBLIC _vfprintf_l PUBLIC printf +PUBLIC ??2@YAPEAX_KPEAX@Z ; operator new PUBLIC wmemcpy +PUBLIC ??0exception@std@@QEAA@QEBDH@Z ; std::exception::exception +PUBLIC ??0exception@std@@QEAA@AEBV01@@Z ; std::exception::exception +PUBLIC ??1exception@std@@UEAA@XZ ; std::exception::~exception +PUBLIC ?what@exception@std@@UEBAPEBDXZ ; std::exception::what +PUBLIC ??_Gexception@std@@UEAAPEAXI@Z ; std::exception::`scalar deleting destructor' +PUBLIC ??0bad_alloc@std@@AEAA@QEBD@Z ; std::bad_alloc::bad_alloc +PUBLIC ??1bad_alloc@std@@UEAA@XZ ; std::bad_alloc::~bad_alloc +PUBLIC ??0bad_alloc@std@@QEAA@AEBV01@@Z ; std::bad_alloc::bad_alloc +PUBLIC ??_Gbad_alloc@std@@UEAAPEAXI@Z ; std::bad_alloc::`scalar deleting destructor' +PUBLIC ??0bad_array_new_length@std@@QEAA@XZ ; std::bad_array_new_length::bad_array_new_length +PUBLIC ??1bad_array_new_length@std@@UEAA@XZ ; std::bad_array_new_length::~bad_array_new_length +PUBLIC ??0bad_array_new_length@std@@QEAA@AEBV01@@Z ; std::bad_array_new_length::bad_array_new_length +PUBLIC ??_Gbad_array_new_length@std@@UEAAPEAXI@Z ; std::bad_array_new_length::`scalar deleting destructor' +PUBLIC ?_Throw_bad_array_new_length@std@@YAXXZ ; std::_Throw_bad_array_new_length +PUBLIC ?max@?$numeric_limits@_J@std@@SA_JXZ ; std::numeric_limits<__int64>::max +PUBLIC ?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z ; std::_Default_allocate_traits::_Allocate PUBLIC ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned +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 ??$_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 ??0?$allocator@D@std@@QEAA@XZ ; std::allocator::allocator +PUBLIC ?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z ; std::allocator::deallocate +PUBLIC ?allocate@?$allocator@D@std@@QEAAPEAD_K@Z ; std::allocator::allocate +PUBLIC ?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z ; std::_Narrow_char_traits::copy +PUBLIC ?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z ; std::_Narrow_char_traits::move +PUBLIC ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign +PUBLIC ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ; std::_Narrow_char_traits::to_char_type +PUBLIC ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ; std::_Narrow_char_traits::to_int_type +PUBLIC ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type +PUBLIC ?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z ; std::_Narrow_char_traits::not_eof +PUBLIC ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof +PUBLIC ?_Xlen_string@std@@YAXXZ ; std::_Xlen_string +PUBLIC ?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z ; std::_Default_allocator_traits >::max_size +PUBLIC ??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ; std::_String_val >::_String_val > +PUBLIC ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ ; std::_String_val >::_Myptr +PUBLIC ?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ ; std::_String_val >::_Large_string_engaged +PUBLIC ?_Check_offset@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBAX_K@Z ; std::_String_val >::_Check_offset +PUBLIC ?_Xran@?$_String_val@U?$_Simple_types@D@std@@@std@@SAXXZ ; std::_String_val >::_Xran +PUBLIC ?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z ; std::_String_val >::_Clamp_suffix_size +PUBLIC ??0_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ; std::_String_val >::_Bxty::_Bxty +PUBLIC ??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ; std::_String_val >::_Bxty::~_Bxty +PUBLIC ??1?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ; std::_String_val >::~_String_val > +PUBLIC ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ; std::basic_string,std::allocator >::basic_string,std::allocator > +PUBLIC ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ; std::basic_string,std::allocator >::~basic_string,std::allocator > +PUBLIC ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K_K@Z ; std::basic_string,std::allocator >::erase +PUBLIC ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z ; std::basic_string,std::allocator >::push_back +PUBLIC ?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ ; std::basic_string,std::allocator >::front +PUBLIC ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ ; std::basic_string,std::allocator >::data +PUBLIC ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ ; std::basic_string,std::allocator >::size +PUBLIC ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ ; std::basic_string,std::allocator >::max_size +PUBLIC ?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z ; std::basic_string,std::allocator >::_Calculate_growth +PUBLIC ?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z ; std::basic_string,std::allocator >::_Calculate_growth +PUBLIC ?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ ; std::basic_string,std::allocator >::_Tidy_init +PUBLIC ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ ; std::basic_string,std::allocator >::_Tidy_deallocate +PUBLIC ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ ; std::basic_string,std::allocator >::_Getal +PUBLIC ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ ; std::basic_string,std::allocator >::_Getal +PUBLIC ?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ ; std::_Compressed_pair,std::_String_val >,1>::_Get_first +PUBLIC ?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ ; std::_Compressed_pair,std::_String_val >,1>::_Get_first +PUBLIC ??1?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@XZ ; std::_Compressed_pair,std::_String_val >,1>::~_Compressed_pair,std::_String_val >,1> +PUBLIC ??0bad_cast@std@@QEAA@XZ ; std::bad_cast::bad_cast +PUBLIC ??1bad_cast@std@@UEAA@XZ ; std::bad_cast::~bad_cast +PUBLIC ??0bad_cast@std@@QEAA@AEBV01@@Z ; std::bad_cast::bad_cast +PUBLIC ??_Gbad_cast@std@@UEAAPEAXI@Z ; std::bad_cast::`scalar deleting destructor' +PUBLIC ?_Throw_bad_cast@std@@YAXXZ ; std::_Throw_bad_cast +PUBLIC ??1locale@std@@QEAA@XZ ; std::locale::~locale +PUBLIC ?_Getfacet@locale@std@@QEBAPEBVfacet@12@_K@Z ; std::locale::_Getfacet PUBLIC ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr +PUBLIC ??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z ; std::fpos<_Mbstatet>::fpos<_Mbstatet> +PUBLIC ??0?$fpos@U_Mbstatet@@@std@@QEAA@U_Mbstatet@@_J@Z ; std::fpos<_Mbstatet>::fpos<_Mbstatet> +PUBLIC ?state@?$fpos@U_Mbstatet@@@std@@QEBA?AU_Mbstatet@@XZ ; std::fpos<_Mbstatet>::state +PUBLIC ??B?$fpos@U_Mbstatet@@@std@@QEBA_JXZ ; std::fpos<_Mbstatet>::operator __int64 PUBLIC ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs PUBLIC ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr +PUBLIC ??$_Fgetc@D@std@@YA_NAEADPEAU_iobuf@@@Z ; std::_Fgetc +PUBLIC ??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z ; std::_Fputc +PUBLIC ??$_Ungetc@D@std@@YA_NAEBDPEAU_iobuf@@@Z ; std::_Ungetc 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 @@ -171,59 +276,266 @@ PUBLIC ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; 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 ?PutToFile@@YAXPEAXK@Z ; PutToFile +PUBLIC ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ofstream >::basic_ofstream > +PUBLIC ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ ; std::basic_ofstream >::~basic_ofstream > +PUBLIC ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z ; std::basic_ofstream >::open +PUBLIC ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ ; std::basic_ofstream >::close +PUBLIC ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_filebuf >::basic_filebuf > +PUBLIC ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ ; std::basic_filebuf >::~basic_filebuf > +PUBLIC ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z ; std::basic_filebuf >::open +PUBLIC ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ ; std::basic_filebuf >::close +PUBLIC ?_Lock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ ; std::basic_filebuf >::_Lock +PUBLIC ?_Unlock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ ; std::basic_filebuf >::_Unlock +PUBLIC ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z ; std::basic_filebuf >::overflow +PUBLIC ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z ; std::basic_filebuf >::pbackfail +PUBLIC ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ ; std::basic_filebuf >::underflow +PUBLIC ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ ; std::basic_filebuf >::uflow +PUBLIC ?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z ; std::basic_filebuf >::xsgetn +PUBLIC ?xsputn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z ; std::basic_filebuf >::xsputn +PUBLIC ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z ; std::basic_filebuf >::seekoff +PUBLIC ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z ; std::basic_filebuf >::seekpos +PUBLIC ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z ; std::basic_filebuf >::setbuf +PUBLIC ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ ; std::basic_filebuf >::sync +PUBLIC ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z ; std::basic_filebuf >::imbue +PUBLIC ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z ; std::basic_filebuf >::_Init +PUBLIC ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ ; std::basic_filebuf >::_Endwrite +PUBLIC ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXAEBV?$codecvt@DDU_Mbstatet@@@2@@Z ; std::basic_filebuf >::_Initcvt +PUBLIC ?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ; std::basic_filebuf >::_Reset_back +PUBLIC ?_Set_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ; std::basic_filebuf >::_Set_back +PUBLIC ??_G?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z ; std::basic_filebuf >::`scalar deleting destructor' +PUBLIC ?__autoclassinit2@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAX_K@Z ; std::basic_ofstream >::__autoclassinit2 +PUBLIC ??_G?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z ; std::basic_ofstream >::`scalar deleting destructor' +PUBLIC ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ ; std::basic_ofstream >::`vbase destructor' PUBLIC main +PUBLIC ??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z ; std::use_facet > +PUBLIC ??$min@_K@std@@YAAEB_KAEB_K0@Z ; std::min +PUBLIC ??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@0@AEAV10@@Z ; std::addressof > > +PUBLIC ?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z ; std::allocator::allocate 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 ??$_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 > +PUBLIC ??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z ; std::allocator::allocator +PUBLIC ??$?0$$V@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z ; std::_Compressed_pair,std::_String_val >,1>::_Compressed_pair,std::_String_val >,1><> +PUBLIC ??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z ; std::_Unfancy +PUBLIC ??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z ; std::addressof const > +PUBLIC ??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z ; std::_Destroy_in_place +PUBLIC ??R@@QEBAXQEADQEBD_KD@Z ; ::operator() +PUBLIC ??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z ; std::basic_string,std::allocator >::_Reallocate_grow_by<,char> +PUBLIC ??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z ; std::_Construct_in_place +PUBLIC ??$_Unfancy@D@std@@YAPEADPEAD@Z ; std::_Unfancy +PUBLIC ??$max@_K@std@@YAAEB_KAEB_K0@Z ; std::max +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 ??$_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 ??$_Get_size_of_n@$00@std@@YA_K_K@Z ; std::_Get_size_of_n<1> +PUBLIC ??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z ; std::addressof +PUBLIC ??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z ; std::forward +PUBLIC ??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z ; std::default_delete::operator() +PUBLIC ??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ ; std::unique_ptr >::~unique_ptr > +PUBLIC ?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ ; std::unique_ptr >::release +PUBLIC ?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ ; std::_Compressed_pair,std::_Facet_base *,1>::_Get_first +PUBLIC ?__autoclassinit2@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAX_K@Z ; std::unique_ptr >::__autoclassinit2 +PUBLIC ??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z ; std::unique_ptr >::unique_ptr >,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 ??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z ; std::addressof +PUBLIC ??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z ; std::forward +PUBLIC ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z ; std::_Allocate_manually_vector_aligned +PUBLIC ??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z ; std::exchange +PUBLIC ??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z ; std::_Compressed_pair,std::_Facet_base *,1>::_Compressed_pair,std::_Facet_base *,1> 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 ??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z ; std::forward +PUBLIC ??_E?$basic_ofstream@DU?$char_traits@D@std@@@std@@$4PPPPPPPM@A@EAAPEAXI@Z ; std::basic_ofstream >::`vector deleting destructor' 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' +PUBLIC ??_C@_0BC@EOODALEL@Unknown?5exception@ ; `string' +PUBLIC ??_7bad_alloc@std@@6B@ ; std::bad_alloc::`vftable' +PUBLIC ??_7bad_array_new_length@std@@6B@ ; std::bad_array_new_length::`vftable' +PUBLIC ??_C@_0BF@KINCDENJ@bad?5array?5new?5length@ ; `string' +PUBLIC _TI3?AVbad_array_new_length@std@@ +PUBLIC _CTA3?AVbad_array_new_length@std@@ +PUBLIC ??_R0?AVbad_array_new_length@std@@@8 ; std::bad_array_new_length `RTTI Type Descriptor' +PUBLIC _CT??_R0?AVbad_array_new_length@std@@@8??0bad_array_new_length@std@@QEAA@AEBV01@@Z24 +PUBLIC ??_R0?AVbad_alloc@std@@@8 ; std::bad_alloc `RTTI Type Descriptor' +PUBLIC _CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QEAA@AEBV01@@Z24 +PUBLIC ??_R0?AVexception@std@@@8 ; std::exception `RTTI Type Descriptor' +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@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@_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@_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 ??_C@_0BA@JFNIOLAK@string?5too?5long@ ; `string' +PUBLIC ??_7bad_cast@std@@6B@ ; std::bad_cast::`vftable' +PUBLIC ??_C@_08EPJLHIJG@bad?5cast@ ; `string' +PUBLIC _TI2?AVbad_cast@std@@ +PUBLIC _CTA2?AVbad_cast@std@@ +PUBLIC ??_R0?AVbad_cast@std@@@8 ; std::bad_cast `RTTI Type Descriptor' +PUBLIC _CT??_R0?AVbad_cast@std@@@8??0bad_cast@std@@QEAA@AEBV01@@Z24 +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' -PUBLIC ??_C@_0M@INKCCKOG@?6?6Original?6@ ; `string' -PUBLIC ??_C@_06CHBCCLOP@?6?6New?6@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_filebuf >::`vftable' +PUBLIC ??_7?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_ofstream >::`vftable' +PUBLIC ??_8?$basic_ofstream@DU?$char_traits@D@std@@@std@@7B@ ; std::basic_ofstream >::`vbtable' +PUBLIC ??_C@_0CJ@GEFBLICI@C?3?2Users?2Iizerd?2Desktop?2Leeg?5Ha@ ; `string' +PUBLIC ??_C@_0BK@MMBIMAKC@numba?5is?3?5?$CFu?5size?5is?5?$CFu?6?6@ ; `string' PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string' +PUBLIC ??_C@_0GI@GFIDMGHH@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_1NA@LKMCOJGD@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ ; `string' +PUBLIC ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4U_Mbstatet@@A ; `std::basic_filebuf >::_Init'::`2'::_Stinit +PUBLIC ??_C@_0BP@PFIPNLNI@front?$CI?$CJ?5called?5on?5empty?5string@ ; `string' +PUBLIC ??_C@_1LC@BJDDPGPA@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AAb?$AAa?$AAs?$AAi?$AAc?$AA_?$AAs?$AAt?$AAr?$AAi@ ; `string' +PUBLIC ??_C@_1EC@DINNLDHA@?$AA?$CC?$AAf?$AAr?$AAo?$AAn?$AAt?$AA?$CI?$AA?$CJ?$AA?5?$AAc?$AAa?$AAl?$AAl?$AAe?$AAd@ ; `string' +PUBLIC ??_C@_0BI@CFPLBAOH@invalid?5string?5position@ ; `string' PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string' +PUBLIC ?_Psave@?$_Facetptr@V?$codecvt@DDU_Mbstatet@@@std@@@std@@2PEBVfacet@locale@2@EB ; std::_Facetptr >::_Psave +PUBLIC ??_C@_1EO@GFNCMDLA@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA_@ ; `string' +PUBLIC ??_R4?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_filebuf >::`RTTI Complete Object Locator' +PUBLIC ??_R0?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@@8 ; std::basic_filebuf > `RTTI Type Descriptor' +PUBLIC ??_R3?$basic_filebuf@DU?$char_traits@D@std@@@std@@8 ; std::basic_filebuf >::`RTTI Class Hierarchy Descriptor' +PUBLIC ??_R2?$basic_filebuf@DU?$char_traits@D@std@@@std@@8 ; std::basic_filebuf >::`RTTI Base Class Array' +PUBLIC ??_R1A@?0A@EA@?$basic_filebuf@DU?$char_traits@D@std@@@std@@8 ; std::basic_filebuf >::`RTTI Base Class Descriptor at (0,-1,0,64)' +PUBLIC ??_R1A@?0A@EA@?$basic_streambuf@DU?$char_traits@D@std@@@std@@8 ; std::basic_streambuf >::`RTTI Base Class Descriptor at (0,-1,0,64)' +PUBLIC ??_R0?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@@8 ; std::basic_streambuf > `RTTI Type Descriptor' +PUBLIC ??_R3?$basic_streambuf@DU?$char_traits@D@std@@@std@@8 ; std::basic_streambuf >::`RTTI Class Hierarchy Descriptor' +PUBLIC ??_R2?$basic_streambuf@DU?$char_traits@D@std@@@std@@8 ; std::basic_streambuf >::`RTTI Base Class Array' +PUBLIC ??_R4?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_ofstream >::`RTTI Complete Object Locator' +PUBLIC ??_R0?AV?$basic_ofstream@DU?$char_traits@D@std@@@std@@@8 ; std::basic_ofstream > `RTTI Type Descriptor' +PUBLIC ??_R3?$basic_ofstream@DU?$char_traits@D@std@@@std@@8 ; std::basic_ofstream >::`RTTI Class Hierarchy Descriptor' +PUBLIC ??_R2?$basic_ofstream@DU?$char_traits@D@std@@@std@@8 ; std::basic_ofstream >::`RTTI Base Class Array' +PUBLIC ??_R1A@?0A@EA@?$basic_ofstream@DU?$char_traits@D@std@@@std@@8 ; std::basic_ofstream >::`RTTI Base Class Descriptor at (0,-1,0,64)' +PUBLIC ??_R1A@?0A@EA@?$basic_ostream@DU?$char_traits@D@std@@@std@@8 ; std::basic_ostream >::`RTTI Base Class Descriptor at (0,-1,0,64)' +PUBLIC ??_R0?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@@8 ; std::basic_ostream > `RTTI Type Descriptor' +PUBLIC ??_R3?$basic_ostream@DU?$char_traits@D@std@@@std@@8 ; std::basic_ostream >::`RTTI Class Hierarchy Descriptor' +PUBLIC ??_R2?$basic_ostream@DU?$char_traits@D@std@@@std@@8 ; std::basic_ostream >::`RTTI Base Class Array' +PUBLIC ??_R1A@A@3FA@?$basic_ios@DU?$char_traits@D@std@@@std@@8 ; std::basic_ios >::`RTTI Base Class Descriptor at (0,0,4,80)' +PUBLIC ??_R0?AV?$basic_ios@DU?$char_traits@D@std@@@std@@@8 ; std::basic_ios > `RTTI Type Descriptor' +PUBLIC ??_R3?$basic_ios@DU?$char_traits@D@std@@@std@@8 ; std::basic_ios >::`RTTI Class Hierarchy Descriptor' +PUBLIC ??_R2?$basic_ios@DU?$char_traits@D@std@@@std@@8 ; std::basic_ios >::`RTTI Base Class Array' +PUBLIC ??_R1A@?0A@EA@?$basic_ios@DU?$char_traits@D@std@@@std@@8 ; std::basic_ios >::`RTTI Base Class Descriptor at (0,-1,0,64)' +PUBLIC ??_R1A@?0A@EA@ios_base@std@@8 ; std::ios_base::`RTTI Base Class Descriptor at (0,-1,0,64)' +PUBLIC ??_R0?AVios_base@std@@@8 ; std::ios_base `RTTI Type Descriptor' +PUBLIC ??_R3ios_base@std@@8 ; std::ios_base::`RTTI Class Hierarchy Descriptor' +PUBLIC ??_R2ios_base@std@@8 ; std::ios_base::`RTTI Base Class Array' +PUBLIC ??_R17?0A@EA@?$_Iosb@H@std@@8 ; std::_Iosb::`RTTI Base Class Descriptor at (8,-1,0,64)' +PUBLIC ??_R0?AV?$_Iosb@H@std@@@8 ; std::_Iosb `RTTI Type Descriptor' +PUBLIC ??_R3?$_Iosb@H@std@@8 ; std::_Iosb::`RTTI Class Hierarchy Descriptor' +PUBLIC ??_R2?$_Iosb@H@std@@8 ; std::_Iosb::`RTTI Base Class Array' +PUBLIC ??_R1A@?0A@EA@?$_Iosb@H@std@@8 ; std::_Iosb::`RTTI Base Class Descriptor at (0,-1,0,64)' +PUBLIC ??_R1A@A@3EA@ios_base@std@@8 ; std::ios_base::`RTTI Base Class Descriptor at (0,0,4,64)' +PUBLIC ??_R17A@3EA@?$_Iosb@H@std@@8 ; std::_Iosb::`RTTI Base Class Descriptor at (8,0,4,64)' +PUBLIC ??_R4exception@std@@6B@ ; std::exception::`RTTI Complete Object Locator' +PUBLIC ??_R3exception@std@@8 ; std::exception::`RTTI Class Hierarchy Descriptor' +PUBLIC ??_R2exception@std@@8 ; std::exception::`RTTI Base Class Array' +PUBLIC ??_R1A@?0A@EA@exception@std@@8 ; std::exception::`RTTI Base Class Descriptor at (0,-1,0,64)' +PUBLIC ??_R4bad_alloc@std@@6B@ ; std::bad_alloc::`RTTI Complete Object Locator' +PUBLIC ??_R3bad_alloc@std@@8 ; std::bad_alloc::`RTTI Class Hierarchy Descriptor' +PUBLIC ??_R2bad_alloc@std@@8 ; std::bad_alloc::`RTTI Base Class Array' +PUBLIC ??_R1A@?0A@EA@bad_alloc@std@@8 ; std::bad_alloc::`RTTI Base Class Descriptor at (0,-1,0,64)' +PUBLIC ??_R4bad_array_new_length@std@@6B@ ; std::bad_array_new_length::`RTTI Complete Object Locator' +PUBLIC ??_R3bad_array_new_length@std@@8 ; std::bad_array_new_length::`RTTI Class Hierarchy Descriptor' +PUBLIC ??_R2bad_array_new_length@std@@8 ; std::bad_array_new_length::`RTTI Base Class Array' +PUBLIC ??_R1A@?0A@EA@bad_array_new_length@std@@8 ; std::bad_array_new_length::`RTTI Base Class Descriptor at (0,-1,0,64)' +PUBLIC ??_R4bad_cast@std@@6B@ ; std::bad_cast::`RTTI Complete Object Locator' +PUBLIC ??_R3bad_cast@std@@8 ; std::bad_cast::`RTTI Class Hierarchy Descriptor' +PUBLIC ??_R2bad_cast@std@@8 ; std::bad_cast::`RTTI Base Class Array' +PUBLIC ??_R1A@?0A@EA@bad_cast@std@@8 ; std::bad_cast::`RTTI Base Class Descriptor at (0,-1,0,64)' +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 memmove:PROC EXTRN __imp_wcslen:PROC EXTRN strlen:PROC EXTRN __imp_VirtualAlloc:PROC EXTRN __imp_srand:PROC EXTRN __imp___acrt_iob_func:PROC +EXTRN __imp__get_stream_buffer_pointers:PROC +EXTRN __imp_fclose:PROC +EXTRN __imp_fflush:PROC +EXTRN __imp_fgetc:PROC +EXTRN __imp_fgetpos:PROC +EXTRN __imp_fputc:PROC +EXTRN __imp_fread:PROC +EXTRN __imp_fsetpos:PROC +EXTRN __imp__fseeki64:PROC +EXTRN __imp_fwrite:PROC +EXTRN __imp_setvbuf:PROC +EXTRN __imp_ungetc:PROC +EXTRN __imp__lock_file:PROC +EXTRN __imp__unlock_file:PROC EXTRN __imp___stdio_common_vfprintf:PROC EXTRN __imp__calloc_dbg:PROC EXTRN __imp__CrtDbgReport:PROC EXTRN __imp_??0_Lockit@std@@QEAA@H@Z:PROC EXTRN __imp_??1_Lockit@std@@QEAA@XZ:PROC EXTRN ?_Xbad_alloc@std@@YAXXZ:PROC ; std::_Xbad_alloc -EXTRN __imp__time64:PROC +EXTRN ?_Xlength_error@std@@YAXPEBD@Z:PROC ; std::_Xlength_error +EXTRN ?_Xout_of_range@std@@YAXPEBD@Z:PROC ; std::_Xout_of_range +EXTRN __std_exception_copy:PROC +EXTRN __std_exception_destroy:PROC +EXTRN ??_Eexception@std@@UEAAPEAXI@Z:PROC ; std::exception::`vector deleting destructor' +EXTRN ??_Ebad_alloc@std@@UEAAPEAXI@Z:PROC ; std::bad_alloc::`vector deleting destructor' +EXTRN ??_Ebad_array_new_length@std@@UEAAPEAXI@Z:PROC ; std::bad_array_new_length::`vector deleting destructor' +EXTRN ??_Ebad_cast@std@@UEAAPEAXI@Z:PROC ; std::bad_cast::`vector deleting destructor' +EXTRN ?_Facet_Register@std@@YAXPEAV_Facet_base@1@@Z:PROC ; std::_Facet_Register 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_??Bid@locale@std@@QEAA_KXZ:PROC +EXTRN ?_Getgloballocale@locale@std@@CAPEAV_Locimp@12@XZ:PROC ; std::locale::_Getgloballocale +EXTRN __imp_?always_noconv@codecvt_base@std@@QEBA_NXZ:PROC +EXTRN __imp_?in@?$codecvt@DDU_Mbstatet@@@std@@QEBAHAEAU_Mbstatet@@PEBD1AEAPEBDPEAD3AEAPEAD@Z:PROC +EXTRN __imp_?out@?$codecvt@DDU_Mbstatet@@@std@@QEBAHAEAU_Mbstatet@@PEBD1AEAPEBDPEAD3AEAPEAD@Z:PROC +EXTRN __imp_?unshift@?$codecvt@DDU_Mbstatet@@@std@@QEBAHAEAU_Mbstatet@@PEAD1AEAPEAD@Z:PROC +EXTRN __imp_?_Getcat@?$codecvt@DDU_Mbstatet@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z:PROC +EXTRN __imp_??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ:PROC +EXTRN __imp_??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ:PROC +EXTRN __imp_?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEBA?AVlocale@2@XZ:PROC +EXTRN __imp_?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ:PROC +EXTRN __imp_?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ:PROC +EXTRN __imp_?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ:PROC +EXTRN __imp_?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ:PROC +EXTRN __imp_?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z:PROC +EXTRN __imp_?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z:PROC +EXTRN __imp_?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ:PROC +EXTRN __imp_?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ:PROC +EXTRN __imp_?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ:PROC +EXTRN __imp_?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ:PROC +EXTRN __imp_?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z:PROC +EXTRN __imp_?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ:PROC +EXTRN __imp_?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ:PROC +EXTRN __imp_?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ:PROC +EXTRN __imp_?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAPEAD0PEAH001@Z:PROC +EXTRN __imp_?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z:PROC +EXTRN __imp_?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z:PROC +EXTRN __imp_??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ:PROC +EXTRN __imp_?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z:PROC +EXTRN __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z:PROC +EXTRN __imp_??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ:PROC +EXTRN __imp_??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z:PROC +EXTRN __imp_??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ:PROC +EXTRN __imp_?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_J@Z:PROC +EXTRN ?_Fiopen@std@@YAPEAU_iobuf@@PEBDHH@Z:PROC ; std::_Fiopen +EXTRN __imp__time64:PROC EXTRN xed_tables_init:PROC 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 ?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z:PROC ; NcAssemble +EXTRN ?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z:PROC ; ObfObfuscate +EXTRN ??_E?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z:PROC ; std::basic_filebuf >::`vector deleting destructor' +EXTRN ??_E?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z:PROC ; std::basic_ofstream >::`vector deleting destructor' +EXTRN ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JXZ:PROC ; std::basic_streambuf >::showmanyc +EXTRN _CxxThrowException:PROC EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC EXTRN _RTC_Shutdown:PROC @@ -232,770 +544,4656 @@ EXTRN __CxxFrameHandler4:PROC EXTRN __GSHandlerCheck:PROC EXTRN __GSHandlerCheck_EH4:PROC EXTRN __security_check_cookie:PROC +EXTRN ??_7type_info@@6B@:BYTE ; type_info::`vftable' +EXTRN __imp_?id@?$codecvt@DDU_Mbstatet@@@std@@2V0locale@2@A:QWORD EXTRN __security_cookie:QWORD ; COMDAT ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA _BSS SEGMENT ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA DQ 01H DUP (?) ; `__local_stdio_printf_options'::`2'::_OptionsStorage _BSS ENDS +; COMDAT ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4U_Mbstatet@@A +_BSS SEGMENT +?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4U_Mbstatet@@A DQ 01H DUP (?) ; `std::basic_filebuf >::_Init'::`2'::_Stinit +_BSS ENDS +; COMDAT ?_Psave@?$_Facetptr@V?$codecvt@DDU_Mbstatet@@@std@@@std@@2PEBVfacet@locale@2@EB +_BSS SEGMENT +?_Psave@?$_Facetptr@V?$codecvt@DDU_Mbstatet@@@std@@@std@@2PEBVfacet@locale@2@EB DQ 01H DUP (?) ; std::_Facetptr >::_Psave +_BSS ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 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+44 + DD imagerel $LN3+59 DD imagerel $unwind$__local_stdio_printf_options pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_vfprintf_l DD imagerel $LN3 - DD imagerel $LN3+103 + DD imagerel $LN3+126 DD imagerel $unwind$_vfprintf_l pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$printf DD imagerel $LN3 - DD imagerel $LN3+216 + DD imagerel $LN3+214 DD imagerel $unwind$printf pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$??2@YAPEAX_KPEAX@Z DD imagerel $LN3 + DD imagerel $LN3+76 + DD imagerel $unwind$??2@YAPEAX_KPEAX@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT +$pdata$??0exception@std@@QEAA@QEBDH@Z DD imagerel $LN3 + DD imagerel $LN3+139 + 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 $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 $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 $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 $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 $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 $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 $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 $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 $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 $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 $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 $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 $unwind$?_Throw_bad_array_new_length@std@@YAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?max@?$numeric_limits@_J@std@@SA_JXZ DD imagerel $LN3 + DD imagerel $LN3+62 + DD imagerel $unwind$?max@?$numeric_limits@_J@std@@SA_JXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z DD imagerel $LN3 + DD imagerel $LN3+76 + 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+453 + DD imagerel $LN21+476 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$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DD imagerel $LN3 + DD imagerel $LN3+108 + DD imagerel $unwind$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z 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$??0_Container_base12@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+85 + DD imagerel $unwind$??0_Container_base12@std@@QEAA@XZ 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$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN7 + DD imagerel $LN7+233 + DD imagerel $unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$time DD imagerel time - DD imagerel time+54 - DD imagerel $unwind$time +$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 $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$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 - DD imagerel $LN12+586 - DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +$pdata$??0?$allocator@D@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??0?$allocator@D@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 - DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z +$pdata$?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z DD imagerel $LN3 + DD imagerel $LN3+93 + DD imagerel $unwind$?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 - DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +$pdata$?allocate@?$allocator@D@std@@QEAAPEAD_K@Z DD imagerel $LN3 + DD imagerel $LN3+89 + DD imagerel $unwind$?allocate@?$allocator@D@std@@QEAAPEAD_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 - DD imagerel $unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +$pdata$?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z DD imagerel $LN3 + DD imagerel $LN3+101 + DD imagerel $unwind$?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_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+356 - DD imagerel $unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +$pdata$?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z DD imagerel $LN3 + DD imagerel $LN3+101 + DD imagerel $unwind$?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD imagerel $LN3 - DD imagerel $LN3+77 - DD imagerel $unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z +$pdata$?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z DD imagerel $LN3 + DD imagerel $LN3+88 + DD imagerel $unwind$?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+203 - DD imagerel $unwind$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ +$pdata$?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z DD imagerel $LN3 + DD imagerel $LN3+74 + DD imagerel $unwind$?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD imagerel $LN3 - DD imagerel $LN3+85 - DD imagerel $unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z +$pdata$?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z DD imagerel $LN3 + DD imagerel $LN3+74 + DD imagerel $unwind$?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD imagerel $LN4 - DD imagerel $LN4+257 - DD imagerel $unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ +$pdata$?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 ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+56 - DD imagerel $unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ +$pdata$?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z DD imagerel $LN7 + DD imagerel $LN7+146 + DD imagerel $unwind$?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD imagerel $LN3 - DD imagerel $LN3+48 - DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ +$pdata$?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 ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+48 - DD imagerel $unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ +$pdata$?_Xlen_string@std@@YAXXZ DD imagerel $LN3 + DD imagerel $LN3+64 + DD imagerel $unwind$?_Xlen_string@std@@YAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?MakeExecutableBuffer@@YAPEAXPEAXK@Z DD imagerel $LN4 - DD imagerel $LN4+113 - DD imagerel $unwind$?MakeExecutableBuffer@@YAPEAXPEAXK@Z +$pdata$?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$main DD imagerel $LN6 - DD imagerel $LN6+390 - DD imagerel $unwind$main +$pdata$??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD imagerel $LN4 + DD imagerel $LN4+132 + DD imagerel $unwind$??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$main$dtor$0 DD imagerel main$dtor$0 - DD imagerel main$dtor$0+36 - DD imagerel $unwind$main$dtor$0 +$pdata$?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ DD imagerel $LN4 + DD imagerel $LN4+122 + DD imagerel $unwind$?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$main$dtor$1 DD imagerel main$dtor$1 - DD imagerel main$dtor$1+36 - DD imagerel $unwind$main$dtor$1 +$pdata$?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ DD imagerel $LN5 + DD imagerel $LN5+107 + DD imagerel $unwind$?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$main$dtor$2 DD imagerel main$dtor$2 - DD imagerel main$dtor$2+39 - DD imagerel $unwind$main$dtor$2 +$pdata$?_Check_offset@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBAX_K@Z DD imagerel $LN4 + DD imagerel $LN4+94 + DD imagerel $unwind$?_Check_offset@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBAX_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+53 - DD imagerel $unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z +$pdata$?_Xran@?$_String_val@U?$_Simple_types@D@std@@@std@@SAXXZ DD imagerel $LN3 + DD imagerel $LN3+64 + DD imagerel $unwind$?_Xran@?$_String_val@U?$_Simple_types@D@std@@@std@@SAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD imagerel $LN3 - DD imagerel $LN3+84 - DD imagerel $unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z +$pdata$?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z DD imagerel $LN3 + DD imagerel $LN3+124 + DD imagerel $unwind$?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@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 +$pdata$??0_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??0_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ 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 + DD imagerel $unwind$??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD imagerel $LN3 - DD imagerel $LN3+51 - DD imagerel $unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z +$pdata$??1?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??1?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD imagerel $LN4 - DD imagerel $LN4+98 - DD imagerel $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z +$pdata$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+172 + DD imagerel $unwind$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD imagerel $LN3 - DD imagerel $LN3+72 - DD imagerel $unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +$pdata$??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+213 + DD imagerel $unwind$??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD imagerel $LN3 - DD imagerel $LN3+74 - DD imagerel $unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z +$pdata$?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K_K@Z DD imagerel $LN3 + DD imagerel $LN3+304 + DD imagerel $unwind$?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K_K@Z pdata ENDS -; COMDAT rtc$TMZ -rtc$TMZ SEGMENT -_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown -rtc$TMZ ENDS -; COMDAT rtc$IMZ -rtc$IMZ SEGMENT -_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase -rtc$IMZ ENDS -; COMDAT ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ -CONST SEGMENT -??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ DB ':' - DB 00H, 'A', 00H, 'M', 00H, ':', 00H, 'a', 00H, 'm', 00H, ':', 00H - DB 'P', 00H, 'M', 00H, ':', 00H, 'p', 00H, 'm', 00H, 00H, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ -CONST SEGMENT -??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_06CHBCCLOP@?6?6New?6@ -CONST SEGMENT -??_C@_06CHBCCLOP@?6?6New?6@ DB 0aH, 0aH, 'New', 0aH, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0M@INKCCKOG@?6?6Original?6@ -CONST SEGMENT -??_C@_0M@INKCCKOG@?6?6Original?6@ DB 0aH, 0aH, 'Original', 0aH, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ -CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' - DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' -CONST ENDS -; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA -_DATA SEGMENT -?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var -_DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ -CONST SEGMENT -??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Prog' - DB 'ram Files (x86)\Microsoft Visual Studio\2019\Community\VC\Too' - DB 'ls\MSVC\14.29.30037\include\xlocale', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ -CONST SEGMENT -??_C@_1CG@JNLFBNGN@?$AA?$CC?$AAi?$AAn?$AAv?$AAa?$AAl?$AAi?$AAd?$AA?5?$AAa?$AAr?$AAg?$AAu?$AAm?$AAe@ DB '"' - DB 00H, 'i', 00H, 'n', 00H, 'v', 00H, 'a', 00H, 'l', 00H, 'i', 00H - DB 'd', 00H, ' ', 00H, 'a', 00H, 'r', 00H, 'g', 00H, 'u', 00H, 'm' - DB 00H, 'e', 00H, 'n', 00H, 't', 00H, '"', 00H, 00H, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ -CONST SEGMENT -??_C@_1EK@NIFDJFDG@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAd?$AAj?$AAu?$AAs?$AAt?$AA_?$AAm?$AAa@ DB 's' - DB 00H, 't', 00H, 'd', 00H, ':', 00H, ':', 00H, '_', 00H, 'A', 00H - DB 'd', 00H, 'j', 00H, 'u', 00H, 's', 00H, 't', 00H, '_', 00H, 'm' - DB 00H, 'a', 00H, 'n', 00H, 'u', 00H, 'a', 00H, 'l', 00H, 'l', 00H - DB 'y', 00H, '_', 00H, 'v', 00H, 'e', 00H, 'c', 00H, 't', 00H, 'o' - DB 00H, 'r', 00H, '_', 00H, 'a', 00H, 'l', 00H, 'i', 00H, 'g', 00H - DB 'n', 00H, 'e', 00H, 'd', 00H, 00H, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ -CONST SEGMENT -??_C@_1NA@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' - DB 00H, ':', 00H, '\', 00H, 'P', 00H, 'r', 00H, 'o', 00H, 'g', 00H - DB 'r', 00H, 'a', 00H, 'm', 00H, ' ', 00H, 'F', 00H, 'i', 00H, 'l' - DB 00H, 'e', 00H, 's', 00H, ' ', 00H, '(', 00H, 'x', 00H, '8', 00H - DB '6', 00H, ')', 00H, '\', 00H, 'M', 00H, 'i', 00H, 'c', 00H, 'r' - DB 00H, 'o', 00H, 's', 00H, 'o', 00H, 'f', 00H, 't', 00H, ' ', 00H - DB 'V', 00H, 'i', 00H, 's', 00H, 'u', 00H, 'a', 00H, 'l', 00H, ' ' - DB 00H, 'S', 00H, 't', 00H, 'u', 00H, 'd', 00H, 'i', 00H, 'o', 00H - DB '\', 00H, '2', 00H, '0', 00H, '1', 00H, '9', 00H, '\', 00H, 'C' - DB 00H, 'o', 00H, 'm', 00H, 'm', 00H, 'u', 00H, 'n', 00H, 'i', 00H - DB 't', 00H, 'y', 00H, '\', 00H, 'V', 00H, 'C', 00H, '\', 00H, 'T' - DB 00H, 'o', 00H, 'o', 00H, 'l', 00H, 's', 00H, '\', 00H, 'M', 00H - DB 'S', 00H, 'V', 00H, 'C', 00H, '\', 00H, '1', 00H, '4', 00H, '.' - DB 00H, '2', 00H, '9', 00H, '.', 00H, '3', 00H, '0', 00H, '0', 00H - DB '3', 00H, '7', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' - DB 00H, 'u', 00H, 'd', 00H, 'e', 00H, '\', 00H, 'x', 00H, 'm', 00H - DB 'e', 00H, 'm', 00H, 'o', 00H, 'r', 00H, 'y', 00H, 00H, 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ -CONST SEGMENT -??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' - DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xmemory', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_02DKCKIIND@?$CFs@ -CONST SEGMENT -??_C@_02DKCKIIND@?$CFs@ DB '%s', 00H ; `string' -CONST ENDS -; COMDAT ??_C@_0BB@FCMFBGOM@invalid?5argument@ -CONST SEGMENT -??_C@_0BB@FCMFBGOM@invalid?5argument@ DB 'invalid argument', 00H ; `string' -CONST ENDS -; COMDAT ?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA -_DATA SEGMENT -?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA DD 099H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var -_DATA ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z DD 025051d01H - DD 0118231dH - DD 07011001dH - DD 05010H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 060H - DD imagerel $ip2state$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025051819H - DD 01132318H - DD 0700c001dH - DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 02H - DB 00H - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025051819H - DD 01132318H - DD 0700c001dH - DD 0500bH +; COMDAT pdata +pdata SEGMENT +$pdata$?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z DD imagerel $LN4 + DD imagerel $LN4+255 + DD imagerel $unwind$?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ DD imagerel $LN12 + DD imagerel $LN12+224 + DD imagerel $unwind$?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ DD imagerel $LN3 + DD imagerel $LN3+80 + DD imagerel $unwind$?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ DD imagerel $LN3 + DD imagerel $LN3+75 + DD imagerel $unwind$?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ DD imagerel $LN3 + DD imagerel $LN3+224 + DD imagerel $unwind$?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z DD imagerel $LN5 + DD imagerel $LN5+269 + DD imagerel $unwind$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z DD imagerel $LN3 + DD imagerel $LN3+133 + DD imagerel $unwind$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ DD imagerel $LN3 + DD imagerel $LN3+138 + DD imagerel $unwind$?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ DD imagerel $LN4 + DD imagerel $LN4+255 + DD imagerel $unwind$?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ DD imagerel $LN3 + DD imagerel $LN3+80 + DD imagerel $unwind$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ DD imagerel $LN3 + DD imagerel $LN3+80 + DD imagerel $unwind$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+67 + DD imagerel $unwind$??1?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0bad_cast@std@@QEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+113 + DD imagerel $unwind$??0bad_cast@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1bad_cast@std@@UEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+64 + DD imagerel $unwind$??1bad_cast@std@@UEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0bad_cast@std@@QEAA@AEBV01@@Z DD imagerel $LN3 + DD imagerel $LN3+100 + DD imagerel $unwind$??0bad_cast@std@@QEAA@AEBV01@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??_Gbad_cast@std@@UEAAPEAXI@Z DD imagerel $LN4 + DD imagerel $LN4+105 + DD imagerel $unwind$??_Gbad_cast@std@@UEAAPEAXI@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Throw_bad_cast@std@@YAXXZ DD imagerel $LN3 + DD imagerel $LN3+83 + DD imagerel $unwind$?_Throw_bad_cast@std@@YAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1locale@std@@QEAA@XZ DD imagerel $LN6 + DD imagerel $LN6+181 + DD imagerel $unwind$??1locale@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Getfacet@locale@std@@QEBAPEBVfacet@12@_K@Z DD imagerel $LN8 + DD imagerel $LN8+231 + DD imagerel $unwind$?_Getfacet@locale@std@@QEBAPEBVfacet@12@_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 + DD imagerel $LN12+584 + DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z DD imagerel $LN3 + DD imagerel $LN3+131 + DD imagerel $unwind$??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0?$fpos@U_Mbstatet@@@std@@QEAA@U_Mbstatet@@_J@Z DD imagerel $LN3 + DD imagerel $LN3+131 + DD imagerel $unwind$??0?$fpos@U_Mbstatet@@@std@@QEAA@U_Mbstatet@@_J@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?state@?$fpos@U_Mbstatet@@@std@@QEBA?AU_Mbstatet@@XZ DD imagerel $LN3 + DD imagerel $LN3+97 + DD imagerel $unwind$?state@?$fpos@U_Mbstatet@@@std@@QEBA?AU_Mbstatet@@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??B?$fpos@U_Mbstatet@@@std@@QEBA_JXZ DD imagerel $LN3 + DD imagerel $LN3+85 + DD imagerel $unwind$??B?$fpos@U_Mbstatet@@@std@@QEBA_JXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 + DD imagerel $LN4+165 + 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 $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Fgetc@D@std@@YA_NAEADPEAU_iobuf@@@Z DD imagerel $LN5 + DD imagerel $LN5+112 + DD imagerel $unwind$??$_Fgetc@D@std@@YA_NAEADPEAU_iobuf@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z DD imagerel $LN5 + DD imagerel $LN5+124 + DD imagerel $unwind$??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Ungetc@D@std@@YA_NAEBDPEAU_iobuf@@@Z DD imagerel $LN5 + DD imagerel $LN5+128 + DD imagerel $unwind$??$_Ungetc@D@std@@YA_NAEBDPEAU_iobuf@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$time DD imagerel time + DD imagerel time+77 + DD imagerel $unwind$time +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 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 ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD imagerel $LN3 + DD imagerel $LN3+100 + 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 $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 $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 $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 $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 $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 $unwind$??1_NATIVE_CODE_BLOCK@@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 ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?PutToFile@@YAXPEAXK@Z DD imagerel $LN4 + DD imagerel $LN4+218 + DD imagerel $unwind$?PutToFile@@YAXPEAXK@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??PutToFile@@YAXPEAXK@Z@4HA DD imagerel ?dtor$0@?0??PutToFile@@YAXPEAXK@Z@4HA + DD imagerel ?dtor$0@?0??PutToFile@@YAXPEAXK@Z@4HA+36 + DD imagerel $unwind$?dtor$0@?0??PutToFile@@YAXPEAXK@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD imagerel $LN8 + DD imagerel $LN8+288 + DD imagerel $unwind$??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0???0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA DD imagerel ?dtor$0@?0???0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA + DD imagerel ?dtor$0@?0???0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA+67 + DD imagerel $unwind$?dtor$0@?0???0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$1@?0???0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA DD imagerel ?dtor$1@?0???0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA + DD imagerel ?dtor$1@?0???0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA+44 + DD imagerel $unwind$?dtor$1@?0???0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ DD imagerel $LN3 + DD imagerel $LN3+204 + DD imagerel $unwind$??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z DD imagerel $LN5 + DD imagerel $LN5+249 + DD imagerel $unwind$?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ DD imagerel $LN4 + DD imagerel $LN4+143 + DD imagerel $unwind$?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ DD imagerel $LN4 + DD imagerel $LN4+120 + DD imagerel $unwind$??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0???0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA DD imagerel ?dtor$0@?0???0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA + DD imagerel ?dtor$0@?0???0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA+40 + DD imagerel $unwind$?dtor$0@?0???0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ DD imagerel $LN5 + DD imagerel $LN5+151 + DD imagerel $unwind$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z DD imagerel $LN6 + DD imagerel $LN6+253 + DD imagerel $unwind$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z@4HA DD imagerel ?dtor$0@?0??open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z@4HA + DD imagerel ?dtor$0@?0??open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z@4HA+39 + DD imagerel $unwind$?dtor$0@?0??open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ DD imagerel $LN7 + DD imagerel $LN7+185 + DD imagerel $unwind$?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Lock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ DD imagerel $LN4 + DD imagerel $LN4+101 + DD imagerel $unwind$?_Lock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Unlock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ DD imagerel $LN4 + DD imagerel $LN4+101 + DD imagerel $unwind$?_Unlock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z DD imagerel $LN18 + DD imagerel $LN18+801 + DD imagerel $unwind$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z DD imagerel $LN13 + DD imagerel $LN13+512 + DD imagerel $unwind$?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DD imagerel $LN7 + DD imagerel $LN7+310 + DD imagerel $unwind$?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DD imagerel $LN21 + DD imagerel $LN21+920 + DD imagerel $unwind$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ@4HA DD imagerel ?dtor$0@?0??uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ@4HA + DD imagerel ?dtor$0@?0??uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ@4HA+36 + DD imagerel $unwind$?dtor$0@?0??uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z DD imagerel $LN11 + DD imagerel $LN11+627 + DD imagerel $unwind$?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?xsputn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z DD imagerel $LN7 + DD imagerel $LN7+388 + DD imagerel $unwind$?xsputn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z DD imagerel $LN8 + DD imagerel $LN8+397 + DD imagerel $unwind$?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z DD imagerel $LN5 + DD imagerel $LN5+320 + DD imagerel $unwind$?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z DD imagerel $LN7 + DD imagerel $LN7+220 + DD imagerel $unwind$?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DD imagerel $LN5 + DD imagerel $LN5+208 + DD imagerel $unwind$?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z DD imagerel $LN3 + DD imagerel $LN3+96 + DD imagerel $unwind$?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z DD imagerel $LN6 + DD imagerel $LN6+374 + DD imagerel $unwind$?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ DD imagerel $LN15 + DD imagerel $LN15+524 + DD imagerel $unwind$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXAEBV?$codecvt@DDU_Mbstatet@@@2@@Z DD imagerel $LN5 + DD imagerel $LN5+142 + DD imagerel $unwind$?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXAEBV?$codecvt@DDU_Mbstatet@@@2@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ DD imagerel $LN4 + DD imagerel $LN4+148 + DD imagerel $unwind$?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Set_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ DD imagerel $LN4 + DD imagerel $LN4+199 + DD imagerel $unwind$?_Set_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??_G?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z DD imagerel $LN4 + DD imagerel $LN4+105 + DD imagerel $unwind$??_G?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__autoclassinit2@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAX_K@Z DD imagerel $LN3 + DD imagerel $LN3+73 + DD imagerel $unwind$?__autoclassinit2@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??_G?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z DD imagerel $LN4 + DD imagerel $LN4+129 + DD imagerel $unwind$??_G?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ DD imagerel $LN3 + DD imagerel $LN3+95 + DD imagerel $unwind$??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$main DD imagerel $LN4 + DD imagerel $LN4+331 + DD imagerel $unwind$main +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$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$??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z DD imagerel $LN11 + DD imagerel $LN11+393 + DD imagerel $unwind$??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0???$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z@4HA DD imagerel ?dtor$0@?0???$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z@4HA + DD imagerel ?dtor$0@?0???$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z@4HA+37 + DD imagerel $unwind$?dtor$0@?0???$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$1@?0???$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z@4HA DD imagerel ?dtor$1@?0???$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z@4HA + DD imagerel ?dtor$1@?0???$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z@4HA+39 + DD imagerel $unwind$?dtor$1@?0???$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$min@_K@std@@YAAEB_KAEB_K0@Z DD imagerel $LN5 + DD imagerel $LN5+142 + DD imagerel $unwind$??$min@_K@std@@YAAEB_KAEB_K0@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@0@AEAV10@@Z DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@0@AEAV10@@Z +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 $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 $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 $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 $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$??$_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 $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$??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z DD imagerel $LN3 + DD imagerel $LN3+76 + DD imagerel $unwind$??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$?0$$V@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DD imagerel $LN4 + DD imagerel $LN4+102 + DD imagerel $unwind$??$?0$$V@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@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 $unwind$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z DD imagerel $LN3 + DD imagerel $LN3+65 + DD imagerel $unwind$??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??R@@QEBAXQEADQEBD_KD@Z DD imagerel $LN3 + DD imagerel $LN3+181 + DD imagerel $unwind$??R@@QEBAXQEADQEBD_KD@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z DD imagerel $LN6 + DD imagerel $LN6+552 + DD imagerel $unwind$??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z DD imagerel $LN3 + DD imagerel $LN3+126 + DD imagerel $unwind$??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Unfancy@D@std@@YAPEADPEAD@Z DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??$_Unfancy@D@std@@YAPEADPEAD@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$max@_K@std@@YAAEB_KAEB_K0@Z DD imagerel $LN5 + DD imagerel $LN5+142 + DD imagerel $unwind$??$max@_K@std@@YAAEB_KAEB_K0@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 $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 $unwind$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@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 $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 $unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Get_size_of_n@$00@std@@YA_K_K@Z DD imagerel $LN3 + DD imagerel $LN3+75 + DD imagerel $unwind$??$_Get_size_of_n@$00@std@@YA_K_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 $unwind$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@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 $unwind$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z DD imagerel $LN5 + DD imagerel $LN5+151 + DD imagerel $unwind$??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ DD imagerel $LN4 + DD imagerel $LN4+136 + DD imagerel $unwind$??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ DD imagerel $LN3 + DD imagerel $LN3+98 + DD imagerel $unwind$?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?__autoclassinit2@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAX_K@Z DD imagerel $LN3 + DD imagerel $LN3+73 + DD imagerel $unwind$?__autoclassinit2@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z DD imagerel $LN3 + DD imagerel $LN3+116 + DD imagerel $unwind$??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@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 $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$??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@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 $unwind$??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z DD imagerel $LN3 + DD imagerel $LN3+107 + DD imagerel $unwind$??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z DD imagerel $LN3 + DD imagerel $LN3+105 + DD imagerel $unwind$??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@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 $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 pdata +pdata SEGMENT +$pdata$??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z DD imagerel $LN3 + DD imagerel $LN3+71 + DD imagerel $unwind$??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z +pdata ENDS +; COMDAT rtc$TMZ +rtc$TMZ SEGMENT +_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown +rtc$TMZ ENDS +; COMDAT rtc$IMZ +rtc$IMZ SEGMENT +_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase +rtc$IMZ ENDS +; COMDAT ??_R1A@?0A@EA@bad_cast@std@@8 +rdata$r SEGMENT +??_R1A@?0A@EA@bad_cast@std@@8 DD imagerel ??_R0?AVbad_cast@std@@@8 ; std::bad_cast::`RTTI Base Class Descriptor at (0,-1,0,64)' + DD 01H + DD 00H + DD 0ffffffffH + DD 00H + DD 040H + DD imagerel ??_R3bad_cast@std@@8 +rdata$r ENDS +; COMDAT ??_R2bad_cast@std@@8 +rdata$r SEGMENT +??_R2bad_cast@std@@8 DD imagerel ??_R1A@?0A@EA@bad_cast@std@@8 ; std::bad_cast::`RTTI Base Class Array' + DD imagerel ??_R1A@?0A@EA@exception@std@@8 + ORG $+3 +rdata$r ENDS +; COMDAT ??_R3bad_cast@std@@8 +rdata$r SEGMENT +??_R3bad_cast@std@@8 DD 00H ; std::bad_cast::`RTTI Class Hierarchy Descriptor' + DD 00H + DD 02H + DD imagerel ??_R2bad_cast@std@@8 +rdata$r ENDS +; COMDAT ??_R4bad_cast@std@@6B@ +rdata$r SEGMENT +??_R4bad_cast@std@@6B@ DD 01H ; std::bad_cast::`RTTI Complete Object Locator' + DD 00H + DD 00H + DD imagerel ??_R0?AVbad_cast@std@@@8 + DD imagerel ??_R3bad_cast@std@@8 + DD imagerel ??_R4bad_cast@std@@6B@ +rdata$r ENDS +; COMDAT ??_R1A@?0A@EA@bad_array_new_length@std@@8 +rdata$r SEGMENT +??_R1A@?0A@EA@bad_array_new_length@std@@8 DD imagerel ??_R0?AVbad_array_new_length@std@@@8 ; std::bad_array_new_length::`RTTI Base Class Descriptor at (0,-1,0,64)' + DD 02H + DD 00H + DD 0ffffffffH + DD 00H + DD 040H + DD imagerel ??_R3bad_array_new_length@std@@8 +rdata$r ENDS +; COMDAT ??_R2bad_array_new_length@std@@8 +rdata$r SEGMENT +??_R2bad_array_new_length@std@@8 DD imagerel ??_R1A@?0A@EA@bad_array_new_length@std@@8 ; std::bad_array_new_length::`RTTI Base Class Array' + DD imagerel ??_R1A@?0A@EA@bad_alloc@std@@8 + DD imagerel ??_R1A@?0A@EA@exception@std@@8 + ORG $+3 +rdata$r ENDS +; COMDAT ??_R3bad_array_new_length@std@@8 +rdata$r SEGMENT +??_R3bad_array_new_length@std@@8 DD 00H ; std::bad_array_new_length::`RTTI Class Hierarchy Descriptor' + DD 00H + DD 03H + DD imagerel ??_R2bad_array_new_length@std@@8 +rdata$r ENDS +; COMDAT ??_R4bad_array_new_length@std@@6B@ +rdata$r SEGMENT +??_R4bad_array_new_length@std@@6B@ DD 01H ; std::bad_array_new_length::`RTTI Complete Object Locator' + DD 00H + DD 00H + DD imagerel ??_R0?AVbad_array_new_length@std@@@8 + DD imagerel ??_R3bad_array_new_length@std@@8 + DD imagerel ??_R4bad_array_new_length@std@@6B@ +rdata$r ENDS +; COMDAT ??_R1A@?0A@EA@bad_alloc@std@@8 +rdata$r SEGMENT +??_R1A@?0A@EA@bad_alloc@std@@8 DD imagerel ??_R0?AVbad_alloc@std@@@8 ; std::bad_alloc::`RTTI Base Class Descriptor at (0,-1,0,64)' + DD 01H + DD 00H + DD 0ffffffffH + DD 00H + DD 040H + DD imagerel ??_R3bad_alloc@std@@8 +rdata$r ENDS +; COMDAT ??_R2bad_alloc@std@@8 +rdata$r SEGMENT +??_R2bad_alloc@std@@8 DD imagerel ??_R1A@?0A@EA@bad_alloc@std@@8 ; std::bad_alloc::`RTTI Base Class Array' + DD imagerel ??_R1A@?0A@EA@exception@std@@8 + ORG $+3 +rdata$r ENDS +; COMDAT ??_R3bad_alloc@std@@8 +rdata$r SEGMENT +??_R3bad_alloc@std@@8 DD 00H ; std::bad_alloc::`RTTI Class Hierarchy Descriptor' + DD 00H + DD 02H + DD imagerel ??_R2bad_alloc@std@@8 +rdata$r ENDS +; COMDAT ??_R4bad_alloc@std@@6B@ +rdata$r SEGMENT +??_R4bad_alloc@std@@6B@ DD 01H ; std::bad_alloc::`RTTI Complete Object Locator' + DD 00H + DD 00H + DD imagerel ??_R0?AVbad_alloc@std@@@8 + DD imagerel ??_R3bad_alloc@std@@8 + DD imagerel ??_R4bad_alloc@std@@6B@ +rdata$r ENDS +; COMDAT ??_R1A@?0A@EA@exception@std@@8 +rdata$r SEGMENT +??_R1A@?0A@EA@exception@std@@8 DD imagerel ??_R0?AVexception@std@@@8 ; std::exception::`RTTI Base Class Descriptor at (0,-1,0,64)' + DD 00H + DD 00H + DD 0ffffffffH + DD 00H + DD 040H + DD imagerel ??_R3exception@std@@8 +rdata$r ENDS +; COMDAT ??_R2exception@std@@8 +rdata$r SEGMENT +??_R2exception@std@@8 DD imagerel ??_R1A@?0A@EA@exception@std@@8 ; std::exception::`RTTI Base Class Array' + ORG $+3 +rdata$r ENDS +; COMDAT ??_R3exception@std@@8 +rdata$r SEGMENT +??_R3exception@std@@8 DD 00H ; std::exception::`RTTI Class Hierarchy Descriptor' + DD 00H + DD 01H + DD imagerel ??_R2exception@std@@8 +rdata$r ENDS +; COMDAT ??_R4exception@std@@6B@ +rdata$r SEGMENT +??_R4exception@std@@6B@ DD 01H ; std::exception::`RTTI Complete Object Locator' + DD 00H + DD 00H + DD imagerel ??_R0?AVexception@std@@@8 + DD imagerel ??_R3exception@std@@8 + DD imagerel ??_R4exception@std@@6B@ +rdata$r ENDS +; COMDAT ??_R17A@3EA@?$_Iosb@H@std@@8 +rdata$r SEGMENT +??_R17A@3EA@?$_Iosb@H@std@@8 DD imagerel ??_R0?AV?$_Iosb@H@std@@@8 ; std::_Iosb::`RTTI Base Class Descriptor at (8,0,4,64)' + DD 00H + DD 08H + DD 00H + DD 04H + DD 040H + DD imagerel ??_R3?$_Iosb@H@std@@8 +rdata$r ENDS +; COMDAT ??_R1A@A@3EA@ios_base@std@@8 +rdata$r SEGMENT +??_R1A@A@3EA@ios_base@std@@8 DD imagerel ??_R0?AVios_base@std@@@8 ; std::ios_base::`RTTI Base Class Descriptor at (0,0,4,64)' + DD 01H + DD 00H + DD 00H + DD 04H + DD 040H + DD imagerel ??_R3ios_base@std@@8 +rdata$r ENDS +; COMDAT ??_R1A@?0A@EA@?$_Iosb@H@std@@8 +rdata$r SEGMENT +??_R1A@?0A@EA@?$_Iosb@H@std@@8 DD imagerel ??_R0?AV?$_Iosb@H@std@@@8 ; std::_Iosb::`RTTI Base Class Descriptor at (0,-1,0,64)' + DD 00H + DD 00H + DD 0ffffffffH + DD 00H + DD 040H + DD imagerel ??_R3?$_Iosb@H@std@@8 +rdata$r ENDS +; COMDAT ??_R2?$_Iosb@H@std@@8 +rdata$r SEGMENT +??_R2?$_Iosb@H@std@@8 DD imagerel ??_R1A@?0A@EA@?$_Iosb@H@std@@8 ; std::_Iosb::`RTTI Base Class Array' + ORG $+3 +rdata$r ENDS +; COMDAT ??_R3?$_Iosb@H@std@@8 +rdata$r SEGMENT +??_R3?$_Iosb@H@std@@8 DD 00H ; std::_Iosb::`RTTI Class Hierarchy Descriptor' + DD 00H + DD 01H + DD imagerel ??_R2?$_Iosb@H@std@@8 +rdata$r ENDS +; COMDAT ??_R0?AV?$_Iosb@H@std@@@8 +data$r SEGMENT +??_R0?AV?$_Iosb@H@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::_Iosb `RTTI Type Descriptor' + DQ 0000000000000000H + DB '.?AV?$_Iosb@H@std@@', 00H +data$r ENDS +; COMDAT ??_R17?0A@EA@?$_Iosb@H@std@@8 +rdata$r SEGMENT +??_R17?0A@EA@?$_Iosb@H@std@@8 DD imagerel ??_R0?AV?$_Iosb@H@std@@@8 ; std::_Iosb::`RTTI Base Class Descriptor at (8,-1,0,64)' + DD 00H + DD 08H + DD 0ffffffffH + DD 00H + DD 040H + DD imagerel ??_R3?$_Iosb@H@std@@8 +rdata$r ENDS +; COMDAT ??_R2ios_base@std@@8 +rdata$r SEGMENT +??_R2ios_base@std@@8 DD imagerel ??_R1A@?0A@EA@ios_base@std@@8 ; std::ios_base::`RTTI Base Class Array' + DD imagerel ??_R17?0A@EA@?$_Iosb@H@std@@8 + ORG $+3 +rdata$r ENDS +; COMDAT ??_R3ios_base@std@@8 +rdata$r SEGMENT +??_R3ios_base@std@@8 DD 00H ; std::ios_base::`RTTI Class Hierarchy Descriptor' + DD 00H + DD 02H + DD imagerel ??_R2ios_base@std@@8 +rdata$r ENDS +; COMDAT ??_R0?AVios_base@std@@@8 +data$r SEGMENT +??_R0?AVios_base@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::ios_base `RTTI Type Descriptor' + DQ 0000000000000000H + DB '.?AVios_base@std@@', 00H +data$r ENDS +; COMDAT ??_R1A@?0A@EA@ios_base@std@@8 +rdata$r SEGMENT +??_R1A@?0A@EA@ios_base@std@@8 DD imagerel ??_R0?AVios_base@std@@@8 ; std::ios_base::`RTTI Base Class Descriptor at (0,-1,0,64)' + DD 01H + DD 00H + DD 0ffffffffH + DD 00H + DD 040H + DD imagerel ??_R3ios_base@std@@8 +rdata$r ENDS +; COMDAT ??_R1A@?0A@EA@?$basic_ios@DU?$char_traits@D@std@@@std@@8 +rdata$r SEGMENT +??_R1A@?0A@EA@?$basic_ios@DU?$char_traits@D@std@@@std@@8 DD imagerel ??_R0?AV?$basic_ios@DU?$char_traits@D@std@@@std@@@8 ; std::basic_ios >::`RTTI Base Class Descriptor at (0,-1,0,64)' + DD 02H + DD 00H + DD 0ffffffffH + DD 00H + DD 040H + DD imagerel ??_R3?$basic_ios@DU?$char_traits@D@std@@@std@@8 +rdata$r ENDS +; COMDAT ??_R2?$basic_ios@DU?$char_traits@D@std@@@std@@8 +rdata$r SEGMENT +??_R2?$basic_ios@DU?$char_traits@D@std@@@std@@8 DD imagerel ??_R1A@?0A@EA@?$basic_ios@DU?$char_traits@D@std@@@std@@8 ; std::basic_ios >::`RTTI Base Class Array' + DD imagerel ??_R1A@?0A@EA@ios_base@std@@8 + DD imagerel ??_R17?0A@EA@?$_Iosb@H@std@@8 + ORG $+3 +rdata$r ENDS +; COMDAT ??_R3?$basic_ios@DU?$char_traits@D@std@@@std@@8 +rdata$r SEGMENT +??_R3?$basic_ios@DU?$char_traits@D@std@@@std@@8 DD 00H ; std::basic_ios >::`RTTI Class Hierarchy Descriptor' + DD 00H + DD 03H + DD imagerel ??_R2?$basic_ios@DU?$char_traits@D@std@@@std@@8 +rdata$r ENDS +; COMDAT ??_R0?AV?$basic_ios@DU?$char_traits@D@std@@@std@@@8 +data$r SEGMENT +??_R0?AV?$basic_ios@DU?$char_traits@D@std@@@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::basic_ios > `RTTI Type Descriptor' + DQ 0000000000000000H + DB '.?AV?$basic_ios@DU?$char_traits@D@std@@@std@@', 00H +data$r ENDS +; COMDAT ??_R1A@A@3FA@?$basic_ios@DU?$char_traits@D@std@@@std@@8 +rdata$r SEGMENT +??_R1A@A@3FA@?$basic_ios@DU?$char_traits@D@std@@@std@@8 DD imagerel ??_R0?AV?$basic_ios@DU?$char_traits@D@std@@@std@@@8 ; std::basic_ios >::`RTTI Base Class Descriptor at (0,0,4,80)' + DD 02H + DD 00H + DD 00H + DD 04H + DD 050H + DD imagerel ??_R3?$basic_ios@DU?$char_traits@D@std@@@std@@8 +rdata$r ENDS +; COMDAT ??_R2?$basic_ostream@DU?$char_traits@D@std@@@std@@8 +rdata$r SEGMENT +??_R2?$basic_ostream@DU?$char_traits@D@std@@@std@@8 DD imagerel ??_R1A@?0A@EA@?$basic_ostream@DU?$char_traits@D@std@@@std@@8 ; std::basic_ostream >::`RTTI Base Class Array' + DD imagerel ??_R1A@A@3FA@?$basic_ios@DU?$char_traits@D@std@@@std@@8 + DD imagerel ??_R1A@A@3EA@ios_base@std@@8 + DD imagerel ??_R17A@3EA@?$_Iosb@H@std@@8 + ORG $+3 +rdata$r ENDS +; COMDAT ??_R3?$basic_ostream@DU?$char_traits@D@std@@@std@@8 +rdata$r SEGMENT +??_R3?$basic_ostream@DU?$char_traits@D@std@@@std@@8 DD 00H ; std::basic_ostream >::`RTTI Class Hierarchy Descriptor' + DD 00H + DD 04H + DD imagerel ??_R2?$basic_ostream@DU?$char_traits@D@std@@@std@@8 +rdata$r ENDS +; COMDAT ??_R0?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@@8 +data$r SEGMENT +??_R0?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::basic_ostream > `RTTI Type Descriptor' + DQ 0000000000000000H + DB '.?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@', 00H +data$r ENDS +; COMDAT ??_R1A@?0A@EA@?$basic_ostream@DU?$char_traits@D@std@@@std@@8 +rdata$r SEGMENT +??_R1A@?0A@EA@?$basic_ostream@DU?$char_traits@D@std@@@std@@8 DD imagerel ??_R0?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@@8 ; std::basic_ostream >::`RTTI Base Class Descriptor at (0,-1,0,64)' + DD 03H + DD 00H + DD 0ffffffffH + DD 00H + DD 040H + DD imagerel ??_R3?$basic_ostream@DU?$char_traits@D@std@@@std@@8 +rdata$r ENDS +; COMDAT ??_R1A@?0A@EA@?$basic_ofstream@DU?$char_traits@D@std@@@std@@8 +rdata$r SEGMENT +??_R1A@?0A@EA@?$basic_ofstream@DU?$char_traits@D@std@@@std@@8 DD imagerel ??_R0?AV?$basic_ofstream@DU?$char_traits@D@std@@@std@@@8 ; std::basic_ofstream >::`RTTI Base Class Descriptor at (0,-1,0,64)' + DD 04H + DD 00H + DD 0ffffffffH + DD 00H + DD 040H + DD imagerel ??_R3?$basic_ofstream@DU?$char_traits@D@std@@@std@@8 +rdata$r ENDS +; COMDAT ??_R2?$basic_ofstream@DU?$char_traits@D@std@@@std@@8 +rdata$r SEGMENT +??_R2?$basic_ofstream@DU?$char_traits@D@std@@@std@@8 DD imagerel ??_R1A@?0A@EA@?$basic_ofstream@DU?$char_traits@D@std@@@std@@8 ; std::basic_ofstream >::`RTTI Base Class Array' + DD imagerel ??_R1A@?0A@EA@?$basic_ostream@DU?$char_traits@D@std@@@std@@8 + DD imagerel ??_R1A@A@3FA@?$basic_ios@DU?$char_traits@D@std@@@std@@8 + DD imagerel ??_R1A@A@3EA@ios_base@std@@8 + DD imagerel ??_R17A@3EA@?$_Iosb@H@std@@8 + ORG $+3 +rdata$r ENDS +; COMDAT ??_R3?$basic_ofstream@DU?$char_traits@D@std@@@std@@8 +rdata$r SEGMENT +??_R3?$basic_ofstream@DU?$char_traits@D@std@@@std@@8 DD 00H ; std::basic_ofstream >::`RTTI Class Hierarchy Descriptor' + DD 00H + DD 05H + DD imagerel ??_R2?$basic_ofstream@DU?$char_traits@D@std@@@std@@8 +rdata$r ENDS +; COMDAT ??_R0?AV?$basic_ofstream@DU?$char_traits@D@std@@@std@@@8 +data$r SEGMENT +??_R0?AV?$basic_ofstream@DU?$char_traits@D@std@@@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::basic_ofstream > `RTTI Type Descriptor' + DQ 0000000000000000H + DB '.?AV?$basic_ofstream@DU?$char_traits@D@std@@@std@@', 00H +data$r ENDS +; COMDAT ??_R4?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ +rdata$r SEGMENT +??_R4?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ DD 01H ; std::basic_ofstream >::`RTTI Complete Object Locator' + DD 0a8H + DD 04H + DD imagerel ??_R0?AV?$basic_ofstream@DU?$char_traits@D@std@@@std@@@8 + DD imagerel ??_R3?$basic_ofstream@DU?$char_traits@D@std@@@std@@8 + DD imagerel ??_R4?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ +rdata$r ENDS +; COMDAT ??_R2?$basic_streambuf@DU?$char_traits@D@std@@@std@@8 +rdata$r SEGMENT +??_R2?$basic_streambuf@DU?$char_traits@D@std@@@std@@8 DD imagerel ??_R1A@?0A@EA@?$basic_streambuf@DU?$char_traits@D@std@@@std@@8 ; std::basic_streambuf >::`RTTI Base Class Array' + ORG $+3 +rdata$r ENDS +; COMDAT ??_R3?$basic_streambuf@DU?$char_traits@D@std@@@std@@8 +rdata$r SEGMENT +??_R3?$basic_streambuf@DU?$char_traits@D@std@@@std@@8 DD 00H ; std::basic_streambuf >::`RTTI Class Hierarchy Descriptor' + DD 00H + DD 01H + DD imagerel ??_R2?$basic_streambuf@DU?$char_traits@D@std@@@std@@8 +rdata$r ENDS +; COMDAT ??_R0?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@@8 +data$r SEGMENT +??_R0?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::basic_streambuf > `RTTI Type Descriptor' + DQ 0000000000000000H + DB '.?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@', 00H +data$r ENDS +; COMDAT ??_R1A@?0A@EA@?$basic_streambuf@DU?$char_traits@D@std@@@std@@8 +rdata$r SEGMENT +??_R1A@?0A@EA@?$basic_streambuf@DU?$char_traits@D@std@@@std@@8 DD imagerel ??_R0?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@@8 ; std::basic_streambuf >::`RTTI Base Class Descriptor at (0,-1,0,64)' + DD 00H + DD 00H + DD 0ffffffffH + DD 00H + DD 040H + DD imagerel ??_R3?$basic_streambuf@DU?$char_traits@D@std@@@std@@8 +rdata$r ENDS +; COMDAT ??_R1A@?0A@EA@?$basic_filebuf@DU?$char_traits@D@std@@@std@@8 +rdata$r SEGMENT +??_R1A@?0A@EA@?$basic_filebuf@DU?$char_traits@D@std@@@std@@8 DD imagerel ??_R0?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@@8 ; std::basic_filebuf >::`RTTI Base Class Descriptor at (0,-1,0,64)' + DD 01H + DD 00H + DD 0ffffffffH + DD 00H + DD 040H + DD imagerel ??_R3?$basic_filebuf@DU?$char_traits@D@std@@@std@@8 +rdata$r ENDS +; COMDAT ??_R2?$basic_filebuf@DU?$char_traits@D@std@@@std@@8 +rdata$r SEGMENT +??_R2?$basic_filebuf@DU?$char_traits@D@std@@@std@@8 DD imagerel ??_R1A@?0A@EA@?$basic_filebuf@DU?$char_traits@D@std@@@std@@8 ; std::basic_filebuf >::`RTTI Base Class Array' + DD imagerel ??_R1A@?0A@EA@?$basic_streambuf@DU?$char_traits@D@std@@@std@@8 + ORG $+3 +rdata$r ENDS +; COMDAT ??_R3?$basic_filebuf@DU?$char_traits@D@std@@@std@@8 +rdata$r SEGMENT +??_R3?$basic_filebuf@DU?$char_traits@D@std@@@std@@8 DD 00H ; std::basic_filebuf >::`RTTI Class Hierarchy Descriptor' + DD 00H + DD 02H + DD imagerel ??_R2?$basic_filebuf@DU?$char_traits@D@std@@@std@@8 +rdata$r ENDS +; COMDAT ??_R0?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@@8 +data$r SEGMENT +??_R0?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::basic_filebuf > `RTTI Type Descriptor' + DQ 0000000000000000H + DB '.?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@', 00H +data$r ENDS +; COMDAT ??_R4?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ +rdata$r SEGMENT +??_R4?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ DD 01H ; std::basic_filebuf >::`RTTI Complete Object Locator' + DD 00H + DD 00H + DD imagerel ??_R0?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@@8 + DD imagerel ??_R3?$basic_filebuf@DU?$char_traits@D@std@@@std@@8 + DD imagerel ??_R4?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ +rdata$r ENDS +; COMDAT ??_C@_1EO@GFNCMDLA@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA_@ +CONST SEGMENT +??_C@_1EO@GFNCMDLA@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAA?$AAl?$AAl?$AAo?$AAc?$AAa?$AAt?$AAe?$AA_@ DB 's' + DB 00H, 't', 00H, 'd', 00H, ':', 00H, ':', 00H, '_', 00H, 'A', 00H + DB 'l', 00H, 'l', 00H, 'o', 00H, 'c', 00H, 'a', 00H, 't', 00H, 'e' + DB 00H, '_', 00H, 'm', 00H, 'a', 00H, 'n', 00H, 'u', 00H, 'a', 00H + DB 'l', 00H, 'l', 00H, 'y', 00H, '_', 00H, 'v', 00H, 'e', 00H, 'c' + DB 00H, 't', 00H, 'o', 00H, 'r', 00H, '_', 00H, 'a', 00H, 'l', 00H + DB 'i', 00H, 'g', 00H, 'n', 00H, 'e', 00H, 'd', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ +CONST SEGMENT +??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ DB ':' + DB 00H, 'A', 00H, 'M', 00H, ':', 00H, 'a', 00H, 'm', 00H, ':', 00H + DB 'P', 00H, 'M', 00H, ':', 00H, 'p', 00H, 'm', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0BI@CFPLBAOH@invalid?5string?5position@ +CONST SEGMENT +??_C@_0BI@CFPLBAOH@invalid?5string?5position@ DB 'invalid string position' + DB 00H ; `string' +CONST ENDS +; COMDAT ??_C@_1EC@DINNLDHA@?$AA?$CC?$AAf?$AAr?$AAo?$AAn?$AAt?$AA?$CI?$AA?$CJ?$AA?5?$AAc?$AAa?$AAl?$AAl?$AAe?$AAd@ +CONST SEGMENT +??_C@_1EC@DINNLDHA@?$AA?$CC?$AAf?$AAr?$AAo?$AAn?$AAt?$AA?$CI?$AA?$CJ?$AA?5?$AAc?$AAa?$AAl?$AAl?$AAe?$AAd@ DB '"' + DB 00H, 'f', 00H, 'r', 00H, 'o', 00H, 'n', 00H, 't', 00H, '(', 00H + DB ')', 00H, ' ', 00H, 'c', 00H, 'a', 00H, 'l', 00H, 'l', 00H, 'e' + DB 00H, 'd', 00H, ' ', 00H, 'o', 00H, 'n', 00H, ' ', 00H, 'e', 00H + DB 'm', 00H, 'p', 00H, 't', 00H, 'y', 00H, ' ', 00H, 's', 00H, 't' + DB 00H, 'r', 00H, 'i', 00H, 'n', 00H, 'g', 00H, '"', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_1LC@BJDDPGPA@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AAb?$AAa?$AAs?$AAi?$AAc?$AA_?$AAs?$AAt?$AAr?$AAi@ +CONST SEGMENT +??_C@_1LC@BJDDPGPA@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AAb?$AAa?$AAs?$AAi?$AAc?$AA_?$AAs?$AAt?$AAr?$AAi@ DB 's' + DB 00H, 't', 00H, 'd', 00H, ':', 00H, ':', 00H, 'b', 00H, 'a', 00H + DB 's', 00H, 'i', 00H, 'c', 00H, '_', 00H, 's', 00H, 't', 00H, 'r' + DB 00H, 'i', 00H, 'n', 00H, 'g', 00H, '<', 00H, 'c', 00H, 'h', 00H + DB 'a', 00H, 'r', 00H, ',', 00H, 's', 00H, 't', 00H, 'r', 00H, 'u' + DB 00H, 'c', 00H, 't', 00H, ' ', 00H, 's', 00H, 't', 00H, 'd', 00H + DB ':', 00H, ':', 00H, 'c', 00H, 'h', 00H, 'a', 00H, 'r', 00H, '_' + DB 00H, 't', 00H, 'r', 00H, 'a', 00H, 'i', 00H, 't', 00H, 's', 00H + DB '<', 00H, 'c', 00H, 'h', 00H, 'a', 00H, 'r', 00H, '>', 00H, ',' + DB 00H, 'c', 00H, 'l', 00H, 'a', 00H, 's', 00H, 's', 00H, ' ', 00H + DB 's', 00H, 't', 00H, 'd', 00H, ':', 00H, ':', 00H, 'a', 00H, 'l' + DB 00H, 'l', 00H, 'o', 00H, 'c', 00H, 'a', 00H, 't', 00H, 'o', 00H + DB 'r', 00H, '<', 00H, 'c', 00H, 'h', 00H, 'a', 00H, 'r', 00H, '>' + DB 00H, ' ', 00H, '>', 00H, ':', 00H, ':', 00H, 'f', 00H, 'r', 00H + DB 'o', 00H, 'n', 00H, 't', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0BP@PFIPNLNI@front?$CI?$CJ?5called?5on?5empty?5string@ +CONST SEGMENT +??_C@_0BP@PFIPNLNI@front?$CI?$CJ?5called?5on?5empty?5string@ DB 'front() ' + DB 'called on empty string', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_1NA@LKMCOJGD@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ +CONST SEGMENT +??_C@_1NA@LKMCOJGD@?$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, '7', 00H, '.', 00H, '2', 00H, '9', 00H, '1', 00H + DB '1', 00H, '0', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' + DB 00H, 'u', 00H, 'd', 00H, 'e', 00H, '\', 00H, 'x', 00H, 's', 00H + DB 't', 00H, 'r', 00H, 'i', 00H, 'n', 00H, 'g', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0GI@GFIDMGHH@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@GFIDMGHH@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\xstring', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ +CONST SEGMENT +??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0BK@MMBIMAKC@numba?5is?3?5?$CFu?5size?5is?5?$CFu?6?6@ +CONST SEGMENT +??_C@_0BK@MMBIMAKC@numba?5is?3?5?$CFu?5size?5is?5?$CFu?6?6@ DB 'numba is:' + DB ' %u size is %u', 0aH, 0aH, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0CJ@GEFBLICI@C?3?2Users?2Iizerd?2Desktop?2Leeg?5Ha@ +CONST SEGMENT +??_C@_0CJ@GEFBLICI@C?3?2Users?2Iizerd?2Desktop?2Leeg?5Ha@ DB 'C:\Users\Ii' + DB 'zerd\Desktop\Leeg Hake\Test.m', 00H ; `string' +CONST ENDS +; COMDAT ??_8?$basic_ofstream@DU?$char_traits@D@std@@@std@@7B@ +CONST SEGMENT +??_8?$basic_ofstream@DU?$char_traits@D@std@@@std@@7B@ DD 00H ; std::basic_ofstream >::`vbtable' + DD 0a8H +CONST ENDS +; COMDAT ??_7?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ +CONST SEGMENT +??_7?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ DQ FLAT:??_R4?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_ofstream >::`vftable' + DQ FLAT:??_E?$basic_ofstream@DU?$char_traits@D@std@@@std@@$4PPPPPPPM@A@EAAPEAXI@Z +CONST ENDS +; COMDAT ??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ +CONST SEGMENT +??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ DQ FLAT:??_R4?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ ; std::basic_filebuf >::`vftable' + DQ FLAT:??_E?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z + DQ FLAT:?_Lock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ + DQ FLAT:?_Unlock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ + DQ FLAT:?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z + DQ FLAT:?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z + DQ FLAT:?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JXZ + DQ FLAT:?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ + DQ FLAT:?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ + DQ FLAT:?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z + DQ FLAT:?xsputn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z + DQ FLAT:?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z + DQ FLAT:?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z + DQ FLAT:?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z + DQ FLAT:?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ + DQ FLAT:?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z +CONST ENDS +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@LHMPPKJI@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' +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@ +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' +CONST ENDS +; COMDAT _CT??_R0?AVbad_cast@std@@@8??0bad_cast@std@@QEAA@AEBV01@@Z24 +xdata$x SEGMENT +_CT??_R0?AVbad_cast@std@@@8??0bad_cast@std@@QEAA@AEBV01@@Z24 DD 00H + DD imagerel ??_R0?AVbad_cast@std@@@8 + DD 00H + DD 0ffffffffH + ORG $+4 + DD 018H + DD imagerel ??0bad_cast@std@@QEAA@AEBV01@@Z +xdata$x ENDS +; COMDAT ??_R0?AVbad_cast@std@@@8 +data$r SEGMENT +??_R0?AVbad_cast@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::bad_cast `RTTI Type Descriptor' + DQ 0000000000000000H + DB '.?AVbad_cast@std@@', 00H +data$r ENDS +; COMDAT _CTA2?AVbad_cast@std@@ +xdata$x SEGMENT +_CTA2?AVbad_cast@std@@ DD 02H + DD imagerel _CT??_R0?AVbad_cast@std@@@8??0bad_cast@std@@QEAA@AEBV01@@Z24 + DD imagerel _CT??_R0?AVexception@std@@@8??0exception@std@@QEAA@AEBV01@@Z24 +xdata$x ENDS +; COMDAT _TI2?AVbad_cast@std@@ +xdata$x SEGMENT +_TI2?AVbad_cast@std@@ DD 00H + DD imagerel ??1bad_cast@std@@UEAA@XZ + DD 00H + DD imagerel _CTA2?AVbad_cast@std@@ +xdata$x ENDS +; COMDAT ??_C@_08EPJLHIJG@bad?5cast@ +CONST SEGMENT +??_C@_08EPJLHIJG@bad?5cast@ DB 'bad cast', 00H ; `string' +CONST ENDS +; COMDAT ??_7bad_cast@std@@6B@ +CONST SEGMENT +??_7bad_cast@std@@6B@ DQ FLAT:??_R4bad_cast@std@@6B@ ; std::bad_cast::`vftable' + DQ FLAT:??_Ebad_cast@std@@UEAAPEAXI@Z + DQ FLAT:?what@exception@std@@UEBAPEBDXZ +CONST ENDS +; COMDAT ??_C@_0BA@JFNIOLAK@string?5too?5long@ +CONST SEGMENT +??_C@_0BA@JFNIOLAK@string?5too?5long@ DB 'string too long', 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@FEEOBALC@?$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' + 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, '7', 00H, '.', 00H, '2', 00H, '9', 00H, '1', 00H + DB '1', 00H, '0', 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@ +CONST SEGMENT +??_C@_0GI@JMEOMKJO@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' +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 084H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var +_DATA ENDS +; COMDAT _CT??_R0?AVexception@std@@@8??0exception@std@@QEAA@AEBV01@@Z24 +xdata$x SEGMENT +_CT??_R0?AVexception@std@@@8??0exception@std@@QEAA@AEBV01@@Z24 DD 00H + DD imagerel ??_R0?AVexception@std@@@8 + DD 00H + DD 0ffffffffH + ORG $+4 + DD 018H + DD imagerel ??0exception@std@@QEAA@AEBV01@@Z +xdata$x ENDS +; COMDAT ??_R0?AVexception@std@@@8 +data$r SEGMENT +??_R0?AVexception@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::exception `RTTI Type Descriptor' + DQ 0000000000000000H + DB '.?AVexception@std@@', 00H +data$r ENDS +; COMDAT _CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QEAA@AEBV01@@Z24 +xdata$x SEGMENT +_CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QEAA@AEBV01@@Z24 DD 010H + DD imagerel ??_R0?AVbad_alloc@std@@@8 + DD 00H + DD 0ffffffffH + ORG $+4 + DD 018H + DD imagerel ??0bad_alloc@std@@QEAA@AEBV01@@Z +xdata$x ENDS +; COMDAT ??_R0?AVbad_alloc@std@@@8 +data$r SEGMENT +??_R0?AVbad_alloc@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::bad_alloc `RTTI Type Descriptor' + DQ 0000000000000000H + DB '.?AVbad_alloc@std@@', 00H +data$r ENDS +; COMDAT _CT??_R0?AVbad_array_new_length@std@@@8??0bad_array_new_length@std@@QEAA@AEBV01@@Z24 +xdata$x SEGMENT +_CT??_R0?AVbad_array_new_length@std@@@8??0bad_array_new_length@std@@QEAA@AEBV01@@Z24 DD 00H + DD imagerel ??_R0?AVbad_array_new_length@std@@@8 + DD 00H + DD 0ffffffffH + ORG $+4 + DD 018H + DD imagerel ??0bad_array_new_length@std@@QEAA@AEBV01@@Z +xdata$x ENDS +; COMDAT ??_R0?AVbad_array_new_length@std@@@8 +data$r SEGMENT +??_R0?AVbad_array_new_length@std@@@8 DQ FLAT:??_7type_info@@6B@ ; std::bad_array_new_length `RTTI Type Descriptor' + DQ 0000000000000000H + DB '.?AVbad_array_new_length@std@@', 00H +data$r ENDS +; COMDAT _CTA3?AVbad_array_new_length@std@@ +xdata$x SEGMENT +_CTA3?AVbad_array_new_length@std@@ DD 03H + DD imagerel _CT??_R0?AVbad_array_new_length@std@@@8??0bad_array_new_length@std@@QEAA@AEBV01@@Z24 + DD imagerel _CT??_R0?AVbad_alloc@std@@@8??0bad_alloc@std@@QEAA@AEBV01@@Z24 + DD imagerel _CT??_R0?AVexception@std@@@8??0exception@std@@QEAA@AEBV01@@Z24 +xdata$x ENDS +; COMDAT _TI3?AVbad_array_new_length@std@@ +xdata$x SEGMENT +_TI3?AVbad_array_new_length@std@@ DD 00H + DD imagerel ??1bad_array_new_length@std@@UEAA@XZ + DD 00H + DD imagerel _CTA3?AVbad_array_new_length@std@@ +xdata$x ENDS +; COMDAT ??_C@_0BF@KINCDENJ@bad?5array?5new?5length@ +CONST SEGMENT +??_C@_0BF@KINCDENJ@bad?5array?5new?5length@ DB 'bad array new length', 00H ; `string' +CONST ENDS +; COMDAT ??_7bad_array_new_length@std@@6B@ +CONST SEGMENT +??_7bad_array_new_length@std@@6B@ DQ FLAT:??_R4bad_array_new_length@std@@6B@ ; std::bad_array_new_length::`vftable' + DQ FLAT:??_Ebad_array_new_length@std@@UEAAPEAXI@Z + DQ FLAT:?what@exception@std@@UEBAPEBDXZ +CONST ENDS +; COMDAT ??_7bad_alloc@std@@6B@ +CONST SEGMENT +??_7bad_alloc@std@@6B@ DQ FLAT:??_R4bad_alloc@std@@6B@ ; std::bad_alloc::`vftable' + DQ FLAT:??_Ebad_alloc@std@@UEAAPEAXI@Z + DQ FLAT:?what@exception@std@@UEBAPEBDXZ +CONST ENDS +; COMDAT ??_C@_0BC@EOODALEL@Unknown?5exception@ +CONST SEGMENT +??_C@_0BC@EOODALEL@Unknown?5exception@ DB 'Unknown exception', 00H ; `string' +CONST ENDS +; COMDAT ??_7exception@std@@6B@ +CONST SEGMENT +??_7exception@std@@6B@ DQ FLAT:??_R4exception@std@@6B@ ; std::exception::`vftable' + DQ FLAT:??_Eexception@std@@UEAAPEAXI@Z + DQ FLAT:?what@exception@std@@UEBAPEBDXZ +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z DB 060H + DD imagerel $ip2state$??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z +xdata 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 + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z DB 060H + DD imagerel $ip2state$??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z DD 025053319H + DD 0117231cH + DD 07010001dH + DD 0500fH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z DB 060H + DD imagerel $ip2state$??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z DD 025052f19H + DD 01132318H + DD 0700c0021H + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z +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 + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z DB 060H + DD imagerel $ip2state$??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z DB 060H + DD imagerel $ip2state$??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 060H + DD imagerel $ip2state$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025052f19H + 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$??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z DB 060H + DD imagerel $ip2state$??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z DD 025052f19H + DD 01132318H + DD 0700c0021H + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__autoclassinit2@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAX_K@Z DD 05052d01H + DD 01130316H + DD 0700c0019H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ DB 060H + DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ DB 060H + DD imagerel $ip2state$?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ DD 025052a19H + DD 010e2313H + DD 070070021H + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ DD 025052a19H + DD 010e2313H + DD 07007001fH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z DB 060H + DD imagerel $ip2state$??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z DD 025052f19H + DD 01132318H + DD 0700c0023H + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z +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 +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 +xdata 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 +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@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 +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 +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Get_size_of_n@$00@std@@YA_K_K@Z DD 025052a01H + DD 010e2313H + DD 070070021H + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025052f19H + 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 +$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 + 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 +$unwind$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z DD 025052a01H + 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 + DD 010e2313H + DD 070070025H + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$max@_K@std@@YAAEB_KAEB_K0@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$max@_K@std@@YAAEB_KAEB_K0@Z DB 060H + DD imagerel $ip2state$??$max@_K@std@@YAAEB_KAEB_K0@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$max@_K@std@@YAAEB_KAEB_K0@Z DD 025052f19H + DD 01132318H + DD 0700c0021H + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$max@_K@std@@YAAEB_KAEB_K0@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Unfancy@D@std@@YAPEADPEAD@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Unfancy@D@std@@YAPEADPEAD@Z DB 060H + DD imagerel $ip2state$??$_Unfancy@D@std@@YAPEADPEAD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Unfancy@D@std@@YAPEADPEAD@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Unfancy@D@std@@YAPEADPEAD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z DB 060H + DD imagerel $ip2state$??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z DD 025052f19H + DD 01132318H + DD 0700c0021H + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z DD 035054a19H + DD 011d3322H + DD 070160043H + DD 05015H + DD imagerel __GSHandlerCheck + DD 0208H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z$rtcName$0 DB 05fH ; std::basic_string,std::allocator >::_Reallocate_grow_by<,char> + DB 04eH + DB 065H + DB 077H + DB 05fH + DB 070H + DB 074H + DB 072H + DB 00H + ORG $+7 +??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z$rtcVarDesc DD 0f8H ; std::basic_string,std::allocator >::_Reallocate_grow_by<,char> + DD 08H + DQ FLAT:??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z$rtcName$0 + ORG $+48 +??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z$rtcFrameData DD 01H ; std::basic_string,std::allocator >::_Reallocate_grow_by<,char> + DD 00H + DQ FLAT:??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??R@@QEBAXQEADQEBD_KD@Z DD 025053901H + DD 011d2322H + DD 070160021H + DD 05015H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z DB 060H + DD imagerel $ip2state$??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z DB 060H + DD imagerel $ip2state$??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@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 +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DD 025052a19H + 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 +$unwind$??$?0$$V@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z DD 025052e01H + DD 01122317H + DD 0700b001dH + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z DB 060H + DD imagerel $ip2state$??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z +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 + DD 01132318H + DD 0700c0025H + DD 0500bH +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 + 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 + 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 + 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 + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@0@AEAV10@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@0@AEAV10@@Z DB 060H + DD imagerel $ip2state$??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@0@AEAV10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@0@AEAV10@@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@0@AEAV10@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$min@_K@std@@YAAEB_KAEB_K0@Z DB 02H + DB 00H + DB 00H +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 +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$min@_K@std@@YAAEB_KAEB_K0@Z DD 025052f19H + 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$?dtor$1@?0???$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0???$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z DB 0aH + DB 00H + DB 00H + DB 0a8H + DB 02H + DB 'y', 02H + DB 04H + DB 080H + DB 02H + DB '.' + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z DB 04H + DB 0eH + DD imagerel ?dtor$0@?0???$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z@4HA + DB 02eH + DD imagerel ?dtor$1@?0???$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z DB 028H + DD imagerel $stateUnwindMap$??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z + DD imagerel $ip2state$??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z DD 025053b19H + DD 010e2313H + DD 070070039H + DD 05006H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z + DD 01baH +xdata ENDS +; COMDAT CONST +CONST SEGMENT +??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z$rtcName$0 DB 05fH ; std::use_facet > + DB 04cH + DB 06fH + DB 063H + DB 06bH + DB 00H + ORG $+2 +??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z$rtcName$1 DB 05fH ; std::use_facet > + DB 050H + DB 073H + DB 061H + DB 076H + DB 065H + DB 00H + ORG $+1 +??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z$rtcName$2 DB 05fH ; std::use_facet > + DB 050H + DB 073H + DB 061H + DB 076H + DB 065H + DB 05fH + DB 067H + DB 075H + DB 061H + DB 072H + DB 064H + DB 00H + ORG $+3 +??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z$rtcVarDesc DD 0c8H ; std::use_facet > + DD 08H + DQ FLAT:??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z$rtcName$2 + DD 048H + DD 08H + DQ FLAT:??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z$rtcName$1 + DD 024H + DD 04H + DQ FLAT:??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z$rtcName$0 + ORG $+144 +??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z$rtcFrameData DD 03H ; std::use_facet > + DD 00H + DQ FLAT:??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$main$dtor$0 DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$main DB 06H + DB 00H + DB 00H + DB 0b2H + DB 02H + DB 0e9H, 02H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$main DB 02H + DB 0eH + DD imagerel main$dtor$0 +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$main DB 028H + DD imagerel $stateUnwindMap$main + DD imagerel $ip2state$main +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$main DD 025052f19H + DD 010a230fH + DD 07003003bH + DD 05002H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$main + DD 01c2H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +main$rtcName$0 DB 042H + DB 06cH + DB 06fH + DB 063H + DB 06bH + DB 00H + ORG $+2 +main$rtcName$1 DB 04fH + DB 062H + DB 066H + DB 00H + ORG $+4 +main$rtcName$2 DB 041H + DB 073H + DB 06dH + DB 053H + DB 069H + DB 07aH + DB 065H + DB 00H + ORG $+8 +main$rtcVarDesc DD 0a4H + DD 04H + DQ FLAT:main$rtcName$2 + DD 078H + DD 010H + DQ FLAT:main$rtcName$1 + DD 028H + DD 030H + DQ FLAT:main$rtcName$0 + ORG $+144 +main$rtcFrameData DD 03H + DD 00H + DQ FLAT:main$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??_G?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z DD 025052e01H + DD 01122317H + DD 0700b001dH + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?__autoclassinit2@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAX_K@Z DD 05052d01H + DD 01130316H + DD 0700c0019H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??_G?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z DD 025052e01H + DD 01122317H + DD 0700b001dH + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Set_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXAEBV?$codecvt@DDU_Mbstatet@@@2@@Z DD 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ DD 035053b19H + DD 010e3313H + DD 07007003dH + DD 05006H + DD imagerel __GSHandlerCheck + DD 01d8H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ$rtcName$0 DB 05fH ; std::basic_filebuf >::_Endwrite + DB 053H + DB 074H + DB 072H + DB 00H + ORG $+3 +?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ$rtcName$1 DB 05fH ; std::basic_filebuf >::_Endwrite + DB 044H + DB 065H + DB 073H + DB 074H + DB 00H + ORG $+2 +?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ$rtcVarDesc DD 098H ; std::basic_filebuf >::_Endwrite + DD 08H + DQ FLAT:?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ$rtcName$1 + DD 058H + DD 020H + DQ FLAT:?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ$rtcName$0 + ORG $+96 +?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ$rtcFrameData DD 02H ; std::basic_filebuf >::_Endwrite + DD 00H + DQ FLAT:?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z DD 045054519H + DD 0118431dH + DD 070110031H + DD 05010H + DD imagerel __GSHandlerCheck + DD 0178H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z$rtcName$0 DB 05fH ; std::basic_filebuf >::_Init + DB 050H + DB 062H + DB 00H +?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z$rtcName$1 DB 05fH ; std::basic_filebuf >::_Init + DB 050H + DB 06eH + DB 00H +?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z$rtcName$2 DB 05fH ; std::basic_filebuf >::_Init + DB 04eH + DB 072H + DB 00H + ORG $+4 +?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z$rtcVarDesc DD 088H ; std::basic_filebuf >::_Init + DD 08H + DQ FLAT:?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z$rtcName$2 + DD 068H + DD 08H + DQ FLAT:?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z$rtcName$1 + DD 048H + DD 08H + DQ FLAT:?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z$rtcName$0 + ORG $+144 +?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z$rtcFrameData DD 03H ; std::basic_filebuf >::_Init + DD 00H + DQ FLAT:?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z DD 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DD 025052a01H + DD 010e2313H + DD 070070027H + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z DD 025053401H + DD 0118231dH + DD 070110025H + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z DD 025054a19H + DD 011d2322H + DD 070160025H + DD 05015H + DD imagerel __GSHandlerCheck + DD 0118H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z$rtcName$0 DB 05fH ; std::basic_filebuf >::seekpos + DB 04fH + DB 066H + DB 066H + DB 00H + ORG $+11 +?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z$rtcVarDesc DD 028H ; std::basic_filebuf >::seekpos + DD 08H + DQ FLAT:?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z$rtcName$0 + ORG $+48 +?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z$rtcFrameData DD 01H ; std::basic_filebuf >::seekpos + DD 00H + DQ FLAT:?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z DD 025054a19H + DD 011d2322H + DD 070160021H + DD 05015H + DD imagerel __GSHandlerCheck + DD 0f8H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z$rtcName$0 DB 05fH ; std::basic_filebuf >::seekoff + DB 046H + DB 069H + DB 06cH + DB 065H + DB 070H + DB 06fH + DB 073H + DB 069H + DB 074H + DB 069H + DB 06fH + DB 06eH + DB 00H + ORG $+2 +?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z$rtcVarDesc DD 028H ; std::basic_filebuf >::seekoff + DD 08H + DQ FLAT:?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z$rtcName$0 + ORG $+48 +?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z$rtcFrameData DD 01H ; std::basic_filebuf >::seekoff + DD 00H + DQ FLAT:?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?xsputn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z DD 025053401H + DD 0118231dH + DD 070110025H + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z DD 025054519H + DD 0118231dH + DD 070110037H + DD 05010H + DD imagerel __GSHandlerCheck + DD 01a8H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z$rtcName$0 DB 05fH ; std::basic_filebuf >::xsgetn + DB 043H + DB 06fH + DB 075H + DB 06eH + DB 074H + DB 05fH + DB 073H + DB 00H + ORG $+7 +?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z$rtcName$1 DB 05fH ; std::basic_filebuf >::xsgetn + DB 041H + DB 076H + DB 061H + DB 069H + DB 06cH + DB 061H + DB 062H + DB 06cH + DB 065H + DB 00H + ORG $+5 +?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z$rtcVarDesc DD 068H ; std::basic_filebuf >::xsgetn + DD 08H + DQ FLAT:?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z$rtcName$1 + DD 028H + DD 08H + DQ FLAT:?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z$rtcName$0 + ORG $+96 +?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z$rtcFrameData DD 02H ; std::basic_filebuf >::xsgetn + DD 00H + DQ FLAT:?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DB 016H + DB 00H + DB 00H + DB 091H, 04H + DB 02H + DB '\' + DB 00H + DB '(' + DB 02H + DB 05H, 06H + DB 00H + DB '"' + DB 02H + DB 'j' + DB 00H + DB '"' + DB 02H + DB 016H + DB 00H + DB '"' + DB 02H + DB 01eH + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DB 02H + DB 0eH + DD imagerel ?dtor$0@?0??uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DB 028H + DD imagerel $stateUnwindMap$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ + DD imagerel $ip2state$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DD 045053b19H + DD 010e4313H + DD 070070057H + DD 05006H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ + DD 02a2H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcName$0 DB 05fH ; std::basic_filebuf >::uflow + DB 043H + DB 068H + DB 00H +?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcName$1 DB 05fH ; std::basic_filebuf >::uflow + DB 053H + DB 074H + DB 072H + DB 00H + ORG $+3 +?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcName$2 DB 05fH ; std::basic_filebuf >::uflow + DB 053H + DB 072H + DB 063H + DB 00H + ORG $+3 +?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcName$3 DB 05fH ; std::basic_filebuf >::uflow + DB 043H + DB 068H + DB 00H +?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcName$4 DB 05fH ; std::basic_filebuf >::uflow + DB 044H + DB 065H + DB 073H + DB 074H + DB 00H + ORG $+2 +?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcVarDesc DD 0108H ; std::basic_filebuf >::uflow + DD 08H + DQ FLAT:?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcName$4 + DD 0e4H + DD 01H + DQ FLAT:?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcName$3 + DD 0a8H + DD 08H + DQ FLAT:?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcName$2 + DD 068H + DD 028H + DQ FLAT:?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcName$1 + DD 044H + DD 01H + DQ FLAT:?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcName$0 + ORG $+240 +?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcFrameData DD 05H ; std::basic_filebuf >::uflow + DD 00H + DQ FLAT:?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ DD 025053b19H + DD 010e2313H + DD 070070027H + DD 05006H + DD imagerel __GSHandlerCheck + DD 0120H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcName$0 DB 05fH ; std::basic_filebuf >::underflow + DB 04dH + DB 065H + DB 074H + DB 061H + DB 00H + ORG $+10 +?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcVarDesc DD 024H ; std::basic_filebuf >::underflow + DD 04H + DQ FLAT:?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcName$0 + ORG $+48 +?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcFrameData DD 01H ; std::basic_filebuf >::underflow + DD 00H + DQ FLAT:?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z DD 025052e01H + DD 01122317H + DD 0700b002dH + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z DD 045053f19H + DD 01124317H + DD 0700b0043H + DD 0500aH + DD imagerel __GSHandlerCheck + DD 0208H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z$rtcName$0 DB 05fH ; std::basic_filebuf >::overflow + DB 053H + DB 074H + DB 072H + DB 00H + ORG $+3 +?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z$rtcName$1 DB 05fH ; std::basic_filebuf >::overflow + DB 043H + DB 068H + DB 00H +?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z$rtcName$2 DB 05fH ; std::basic_filebuf >::overflow + DB 053H + DB 072H + DB 063H + DB 00H + ORG $+3 +?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z$rtcName$3 DB 05fH ; std::basic_filebuf >::overflow + DB 044H + DB 065H + DB 073H + DB 074H + DB 00H + ORG $+6 +?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z$rtcVarDesc DD 0e8H ; std::basic_filebuf >::overflow + DD 08H + DQ FLAT:?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z$rtcName$3 + DD 0c8H + DD 08H + DQ FLAT:?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z$rtcName$2 + DD 0a4H + DD 01H + DQ FLAT:?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z$rtcName$1 + DD 068H + DD 020H + DQ FLAT:?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z$rtcName$0 + ORG $+192 +?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z$rtcFrameData DD 04H ; std::basic_filebuf >::overflow + DD 00H + DQ FLAT:?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Unlock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Lock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ DD 025052a01H + DD 010e2313H + DD 070070021H + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z DB 06H + DB 00H + DB 00H + DB 011H, 03H + DB 02H + DB '8' + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0??open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z DB 028H + DD imagerel $stateUnwindMap$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z + DD imagerel $ip2state$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z DD 025053911H + DD 011d2322H + DD 070160029H + DD 05015H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ DB 060H + DD imagerel $ip2state$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0???0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 06H + DB 00H + DB 00H + DB 088H + DB 02H + DB 'F' + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 02H + DB 0eH + DD imagerel ?dtor$0@?0???0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 028H + DD imagerel $stateUnwindMap$??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ + DD imagerel $ip2state$??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025052a11H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ DD 025052a01H + DD 010e2313H + DD 07007001fH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z DD 025053901H + DD 011d2322H + DD 07016001fH + DD 05015H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ DB 060H + DD imagerel $ip2state$??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$1@?0???0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0???0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 08H + DB 00H + DB 00H + DB 0eaH + DB 02H + DB 'r' + DB 04H + DB 0c2H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 04H + DB 0eH + DD imagerel ?dtor$0@?0???0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA + DB 02eH + DD imagerel ?dtor$1@?0???0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ DB 028H + DD imagerel $stateUnwindMap$??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ + DD imagerel $ip2state$??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025052e11H + DD 01122317H + DD 0700b0021H + DD 0500aH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??PutToFile@@YAXPEAXK@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?PutToFile@@YAXPEAXK@Z DB 06H + DB 00H + DB 00H + DB 0d0H + DB 02H + DB 080H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?PutToFile@@YAXPEAXK@Z DB 02H + DB 0eH + DD imagerel ?dtor$0@?0??PutToFile@@YAXPEAXK@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?PutToFile@@YAXPEAXK@Z DB 028H + DD imagerel $stateUnwindMap$?PutToFile@@YAXPEAXK@Z + DD imagerel $ip2state$?PutToFile@@YAXPEAXK@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?PutToFile@@YAXPEAXK@Z DD 025053f19H + DD 01122317H + DD 0700b0043H + DD 0500aH + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?PutToFile@@YAXPEAXK@Z + DD 020aH +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?PutToFile@@YAXPEAXK@Z$rtcName$0 DB 066H ; PutToFile + DB 06fH + DB 075H + DB 074H + DB 00H + ORG $+11 +?PutToFile@@YAXPEAXK@Z$rtcVarDesc DD 030H ; PutToFile + DD 0108H + DQ FLAT:?PutToFile@@YAXPEAXK@Z$rtcName$0 + ORG $+48 +?PutToFile@@YAXPEAXK@Z$rtcFrameData DD 01H ; PutToFile + DD 00H + DQ FLAT:?PutToFile@@YAXPEAXK@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?MakeExecutableBuffer@@YAPEAXPEAXK@Z DD 025052e01H + DD 01122317H + DD 0700b0021H + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025052a01H + 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 + 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 + 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 +$ip2state$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DB 060H + DD imagerel $ip2state$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025052a19H + DD 010e2313H + DD 07007002fH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata 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 + DD 010e2313H + DD 070070029H + DD 05006H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ + DD 013bH +xdata ENDS +; COMDAT CONST +CONST SEGMENT +??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcName$0 DB 024H ; std::vector >::~vector > + DB 053H + DB 031H + DB 00H + 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 +??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcFrameData DD 01H ; std::vector >::~vector > + DD 00H + DQ FLAT:??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025053401H + 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 + 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 + 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$??$_Ungetc@D@std@@YA_NAEBDPEAU_iobuf@@@Z DD 025052f01H + DD 01132318H + DD 0700c001fH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z DD 025052e01H + DD 01122317H + DD 0700b001fH + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Fgetc@D@std@@YA_NAEADPEAU_iobuf@@@Z DD 025052f01H + DD 01132318H + DD 0700c0021H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H + DD 0118331dH + DD 07011002bH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H + DD 010e3313H + DD 070070027H + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??B?$fpos@U_Mbstatet@@@std@@QEBA_JXZ DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?state@?$fpos@U_Mbstatet@@@std@@QEBA?AU_Mbstatet@@XZ DD 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0?$fpos@U_Mbstatet@@@std@@QEAA@U_Mbstatet@@_J@Z DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z DD 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H + DD 0118331dH + DD 070110047H + DD 05010H + DD imagerel __GSHandlerCheck + DD 0228H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$0 DB 05fH ; std::_Maklocstr + DB 057H + DB 063H + DB 00H +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$1 DB 05fH ; std::_Maklocstr + DB 04dH + DB 062H + DB 073H + DB 074H + DB 031H + DB 00H + ORG $+1 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$2 DB 05fH ; std::_Maklocstr + DB 04dH + DB 062H + DB 073H + DB 074H + DB 032H + DB 00H + ORG $+13 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcVarDesc DD 0158H ; std::_Maklocstr + DD 08H + DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$2 + DD 0f8H + DD 08H + DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$1 + DD 0d4H + DD 02H + DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$0 + ORG $+144 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData DD 03H ; std::_Maklocstr + DD 00H + DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Getfacet@locale@std@@QEBAPEBVfacet@12@_K@Z DD 025052f01H + DD 01132318H + DD 0700c0025H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??1locale@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1locale@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??1locale@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1locale@std@@QEAA@XZ DD 025052a19H + DD 010e2313H + DD 070070023H + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??1locale@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Throw_bad_cast@std@@YAXXZ DD 025051e01H + DD 010a230fH + DD 070030023H + DD 05002H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??_Gbad_cast@std@@UEAAPEAXI@Z DD 025052e01H + DD 01122317H + DD 0700b001dH + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0bad_cast@std@@QEAA@AEBV01@@Z DD 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1bad_cast@std@@UEAA@XZ DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0bad_cast@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0bad_cast@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??0bad_cast@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0bad_cast@std@@QEAA@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0bad_cast@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@XZ DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ DB 060H + DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ DB 060H + DD imagerel $ip2state$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ DB 060H + DD imagerel $ip2state$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ DB 060H + DD imagerel $ip2state$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ DB 060H + DD imagerel $ip2state$?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ DD 025052a19H + DD 010e2313H + DD 070070029H + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ DB 060H + DD imagerel $ip2state$?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ DD 025052a19H + DD 010e2313H + DD 070070021H + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z DB 060H + DD imagerel $ip2state$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z DD 025052f19H + DD 01132318H + DD 0700c001fH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z DB 060H + DD imagerel $ip2state$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z DD 025054519H + DD 0118231dH + DD 070110025H + DD 05010H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z + DD 011bH +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z$rtcName$0 DB 05fH ; std::basic_string,std::allocator >::_Calculate_growth + DB 04dH + DB 061H + DB 073H + DB 06bH + DB 065H + DB 064H + DB 00H + ORG $+8 +?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z$rtcVarDesc DD 028H ; std::basic_string,std::allocator >::_Calculate_growth + DD 08H + DQ FLAT:?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z$rtcName$0 + ORG $+48 +?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z$rtcFrameData DD 01H ; std::basic_string,std::allocator >::_Calculate_growth + DD 00H + DQ FLAT:?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ DB 060H + DD imagerel $ip2state$?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ DD 025053b19H + DD 010e2313H + DD 070070031H + DD 05006H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ + DD 017bH +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ$rtcName$0 DB 05fH ; std::basic_string,std::allocator >::max_size + DB 041H + DB 06cH + DB 06cH + DB 06fH + DB 063H + DB 05fH + DB 06dH + DB 061H + DB 078H + DB 00H + ORG $+5 +?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ$rtcVarDesc DD 028H ; std::basic_string,std::allocator >::max_size + DD 08H + DQ FLAT:?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ$rtcName$0 + ORG $+48 +?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ$rtcFrameData DD 01H ; std::basic_string,std::allocator >::max_size + DD 00H + DQ FLAT:?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ DB 060H + DD imagerel $ip2state$?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ DB 060H + DD imagerel $ip2state$?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ DB 060H + DD imagerel $ip2state$?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ DD 035052a19H + DD 010e3313H + DD 07007001fH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z DD 025052e01H + DD 01122317H + DD 0700b002dH + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K_K@Z DD 025053401H + DD 0118231dH + DD 07011002dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ DD 025053b19H + DD 010e2313H + DD 070070029H + DD 05006H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ + DD 013bH +xdata ENDS +; COMDAT CONST +CONST SEGMENT +??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ$rtcName$0 DB 024H ; std::basic_string,std::allocator >::~basic_string,std::allocator > + DB 053H + DB 039H + DB 00H + ORG $+12 +??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ$rtcVarDesc DD 044H ; std::basic_string,std::allocator >::~basic_string,std::allocator > + DD 01H + DQ FLAT:??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ$rtcName$0 + ORG $+48 +??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ$rtcFrameData DD 01H ; std::basic_string,std::allocator >::~basic_string,std::allocator > + DD 00H + DQ FLAT:??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ DD 025052a19H + DD 010e2313H + DD 070070025H + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z DB 060H + DD imagerel $ip2state$?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z DD 025053419H + DD 0118231dH + DD 070110021H + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Xran@?$_String_val@U?$_Simple_types@D@std@@@std@@SAXXZ DD 025051e01H + DD 010a230fH + DD 07003001dH + DD 05002H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Check_offset@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBAX_K@Z DD 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ DB 060H + DD imagerel $ip2state$?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ DD 025052a19H + DD 010e2313H + DD 07007001fH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ DB 060H + DD imagerel $ip2state$?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ DD 025052a19H + DD 010e2313H + DD 070070021H + DD 05006H DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z + DD imagerel $cppxdata$?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z DB 060H + DD imagerel $ip2state$?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Xlen_string@std@@YAXXZ DD 025051e01H + DD 010a230fH + DD 07003001dH + DD 05002H +xdata 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 + 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$?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z DB 060H + DD imagerel $ip2state$?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z DD 025052a19H + DD 010e2313H + DD 07007001fH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z +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 + 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$?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z DB 060H + DD imagerel $ip2state$?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z DB 060H + DD imagerel $ip2state$?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z DB 060H + DD imagerel $ip2state$?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z DB 060H + DD imagerel $ip2state$?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z DD 025053419H + DD 0118231dH + DD 07011001dH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z DD 025051d01H +$ip2state$?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z DB 060H + DD imagerel $ip2state$?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z DD 025053419H DD 0118231dH DD 07011001dH DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@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 025051801H +$unwind$?allocate@?$allocator@D@std@@QEAAPEAD_K@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z DD 025051801H +$unwind$?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??0?$allocator@D@std@@QEAA@XZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??0?$allocator@D@std@@QEAA@XZ DB 060H + DD imagerel $ip2state$??0?$allocator@D@std@@QEAA@XZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0?$allocator@D@std@@QEAA@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0?$allocator@D@std@@QEAA@XZ +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 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_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 + DD 010e2313H + DD 070070025H + DD 05006H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ + DD 011bH +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all + 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 + DD 04H + DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 + ORG $+48 +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all + DD 00H + DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$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 +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0_Container_base12@std@@QEAA@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0_Container_base12@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025051801H +$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 +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DD 025052f19H DD 01132318H 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$main$dtor$2 DD 031001H - DD 0700c4210H - 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$main$dtor$1 DD 031001H - DD 0700c4210H +$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035052f01H + DD 01133318H + DD 0700c002fH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$main$dtor$0 DD 031001H - DD 0700c4210H - DD 0500bH +$unwind$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z DD 025052a01H + DD 010e2313H + DD 07007001dH + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$main DB 0eH - DB 00H +$ip2state$?max@?$numeric_limits@_J@std@@SA_JXZ DB 02H DB 00H - DB 0b6H - DB 02H - DB 'B' - DB 04H - DB 01aH - DB 06H - DB 0b9H, 02H - DB 04H - DB 01aH - DB 02H - DB 014H DB 00H xdata ENDS -; COMDAT xdata -xdata SEGMENT -$stateUnwindMap$main DB 06H - DB 0eH - DD imagerel main$dtor$0 - DB 02eH - DD imagerel main$dtor$1 - DB 02eH - DD imagerel main$dtor$2 +; 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 -$cppxdata$main DB 028H - DD imagerel $stateUnwindMap$main - DD imagerel $ip2state$main +$unwind$?max@?$numeric_limits@_J@std@@SA_JXZ DD 025051e19H + 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$main DD 025053119H +$unwind$?_Throw_bad_array_new_length@std@@YAXXZ DD 025051e01H DD 010a230fH - DD 07003003dH + DD 070030023H DD 05002H - DD imagerel __GSHandlerCheck_EH4 - DD imagerel $cppxdata$main - DD 01d2H xdata ENDS -; COMDAT CONST -CONST SEGMENT -main$rtcName$0 DB 042H - DB 06cH - DB 06fH - DB 063H - DB 06bH - DB 00H - 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:main$rtcVarDesc -CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?MakeExecutableBuffer@@YAPEAXPEAXK@Z DD 025051701H +$unwind$??_Gbad_array_new_length@std@@UEAAPEAXI@Z DD 025052e01H DD 01122317H - DD 0700b0021H + DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025051301H +$unwind$??0bad_array_new_length@std@@QEAA@AEBV01@@Z DD 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1bad_array_new_length@std@@UEAA@XZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD 025051301H +$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 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 + DD 01122317H + DD 0700b001dH + DD 0500aH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0bad_alloc@std@@QEAA@AEBV01@@Z DD 025052f01H + DD 01132318H + DD 0700c001dH + DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD 025051301H +$unwind$??1bad_alloc@std@@UEAA@XZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DB 02H +$ip2state$??0bad_alloc@std@@AEAA@QEBD@Z DB 02H DB 00H DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DB 060H - DD imagerel $ip2state$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ +$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$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025051319H - DD 010e2313H - DD 07007002fH - DD 05006H +$unwind$??0bad_alloc@std@@AEAA@QEBD@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ + DD imagerel $cppxdata$??0bad_alloc@std@@AEAA@QEBD@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025051d01H - DD 0118231dH - DD 07011001dH - DD 05010H +$unwind$??_Gexception@std@@UEAAPEAXI@Z DD 025052e01H + DD 01122317H + DD 0700b001dH + DD 0500aH 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 +$unwind$?what@exception@std@@UEBAPEBDXZ DD 025052a01H DD 010e2313H - DD 070070029H + DD 07007001fH DD 05006H - DD imagerel __GSHandlerCheck - DD 0138H xdata ENDS -; COMDAT CONST -CONST SEGMENT -??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcName$0 DB 024H ; std::vector >::~vector > - DB 053H - DB 031H - DB 00H - 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 -??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcFrameData DD 01H ; std::vector >::~vector > - DD 00H - DQ FLAT:??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcVarDesc -CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025051d01H - DD 0118231dH - DD 07011001dH - DD 05010H +$ip2state$??1exception@std@@UEAA@XZ DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H - DD 0119231eH - DD 070120026H - DD 050106011H +$cppxdata$??1exception@std@@UEAA@XZ DB 060H + DD imagerel $ip2state$??1exception@std@@UEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H - DD 0119231eH - DD 070120026H - DD 050106011H +$unwind$??1exception@std@@UEAA@XZ DD 025052a19H + DD 010e2313H + DD 07007001dH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??1exception@std@@UEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H - DD 0118331dH - DD 07011002bH - DD 05010H +$ip2state$??0exception@std@@QEAA@AEBV01@@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H - DD 010e3313H - DD 070070027H - DD 05006H +$cppxdata$??0exception@std@@QEAA@AEBV01@@Z DB 060H + DD imagerel $ip2state$??0exception@std@@QEAA@AEBV01@@Z xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H - DD 0118331dH - DD 070110047H - DD 05010H - DD imagerel __GSHandlerCheck - DD 0228H +$unwind$??0exception@std@@QEAA@AEBV01@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0exception@std@@QEAA@AEBV01@@Z xdata ENDS -; COMDAT CONST -CONST SEGMENT -??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$0 DB 05fH ; std::_Maklocstr - DB 057H - DB 063H - DB 00H -??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$1 DB 05fH ; std::_Maklocstr - DB 04dH - DB 062H - DB 073H - DB 074H - DB 031H +; COMDAT xdata +xdata SEGMENT +$ip2state$??0exception@std@@QEAA@QEBDH@Z DB 02H DB 00H - ORG $+1 -??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$2 DB 05fH ; std::_Maklocstr - DB 04dH - DB 062H - DB 073H - DB 074H - DB 032H DB 00H - ORG $+13 -??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcVarDesc DD 0158H ; std::_Maklocstr - DD 08H - DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$2 - DD 0f8H - DD 08H - DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$1 - DD 0d4H - DD 02H - DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$0 - ORG $+144 -??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData DD 03H ; std::_Maklocstr - DD 00H - DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcVarDesc -CONST ENDS +xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$time DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$cppxdata$??0exception@std@@QEAA@QEBDH@Z DB 060H + DD imagerel $ip2state$??0exception@std@@QEAA@QEBDH@Z xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 036H - DB 07eH -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD 025053d19H - DD 010e2313H - DD 070070021H - DD 05006H - DD imagerel __GSHandlerCheck - DD 0f8H +$unwind$??0exception@std@@QEAA@QEBDH@Z DD 025053419H + DD 0118231dH + DD 07011001dH + DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0exception@std@@QEAA@QEBDH@Z xdata ENDS -; COMDAT CONST -CONST SEGMENT -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all_locked - DB 04cH - DB 06fH - DB 063H - DB 06bH - DB 00H - ORG $+10 -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc DD 024H ; std::_Container_base12::_Orphan_all_locked - DD 04H - DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcName$0 - ORG $+48 -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all_locked - DD 00H - DQ FLAT:?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcVarDesc -CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD 025051301H - DD 010e2313H - DD 070070021H - DD 05006H +$unwind$wmemcpy DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$ip2state$??2@YAPEAX_KPEAX@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035051801H - DD 01133318H - DD 0700c002fH - DD 0500bH +$cppxdata$??2@YAPEAX_KPEAX@Z DB 060H + DD imagerel $ip2state$??2@YAPEAX_KPEAX@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H - DD 0118231dH - DD 07011001dH - DD 05010H +$unwind$??2@YAPEAX_KPEAX@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??2@YAPEAX_KPEAX@Z xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 045H - DB 0bfH -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$printf DD 025054c19H +$unwind$printf DD 025054a19H DD 011d2322H DD 07016002bH DD 05015H @@ -1024,114 +5222,9353 @@ printf$rtcFrameData DD 01H CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$_vfprintf_l DD 035052201H +$unwind$_vfprintf_l DD 035053901H DD 011d3322H DD 07016001fH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$__local_stdio_printf_options DD 025050f01H +$unwind$__local_stdio_printf_options DD 025051e01H DD 010a230fH DD 07003001dH DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$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 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 025051801H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H 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 -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$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 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 025051301H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H 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 _TEXT SEGMENT -__JustMyCode_Default PROC ; COMDAT - 00000 c2 00 00 ret 0 -__JustMyCode_Default ENDP +__JustMyCode_Default PROC ; COMDAT + 00000 c2 00 00 ret 0 +__JustMyCode_Default ENDP +_TEXT ENDS +; Function compile flags: /Odsp /RTCsu /ZI +; COMDAT ??_E?$basic_ofstream@DU?$char_traits@D@std@@@std@@$4PPPPPPPM@A@EAAPEAXI@Z +_TEXT SEGMENT +??_E?$basic_ofstream@DU?$char_traits@D@std@@@std@@$4PPPPPPPM@A@EAAPEAXI@Z PROC ; std::basic_ofstream >::`vector deleting destructor', COMDAT + 00000 48 63 41 fc movsxd rax, DWORD PTR [rcx-4] + 00004 48 2b c8 sub rcx, rax + 00007 e9 00 00 00 00 jmp ??_E?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z +??_E?$basic_ofstream@DU?$char_traits@D@std@@@std@@$4PPPPPPPM@A@EAAPEAXI@Z ENDP ; std::basic_ofstream >::`vector 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\type_traits +; COMDAT ??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z +_TEXT SEGMENT +_Arg$ = 224 +??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z PROC ; std::forward, COMDAT + +; 1454 : 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 + 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@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@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\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 +_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) { + +$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 + +; 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 + 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 + 00048 48 8b d0 mov rdx, rax + 0004b 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> + +; 690 : } + + 00057 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 +?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 +; COMDAT ??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z +_TEXT SEGMENT +this$ = 224 +__formal$ = 232 +<_Val2_0>$ = 240 +??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z PROC ; std::_Compressed_pair,std::_Facet_base *,1>::_Compressed_pair,std::_Facet_base *,1>, COMDAT + +; 1336 : : _Ty1(), _Myval2(_STD forward<_Other2>(_Val2)...) {} + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 88 54 24 10 mov BYTE PTR [rsp+16], dl + 00009 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000e 55 push rbp + 0000f 57 push rdi + 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:__A58979FC_xmemory + 0003a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003f 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR <_Val2_0>$[rbp] + 00046 e8 00 00 00 00 call ??$forward@AEAPEAV_Facet_base@std@@@std@@YAAEAPEAV_Facet_base@0@AEAPEAV10@@Z ; std::forward + 0004b 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00052 48 8b 00 mov rax, QWORD PTR [rax] + 00055 48 89 01 mov QWORD PTR [rcx], rax + 00058 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005f 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 +??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z ENDP ; std::_Compressed_pair,std::_Facet_base *,1>::_Compressed_pair,std::_Facet_base *,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\utility +; COMDAT ??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z +_TEXT SEGMENT +_Old_val$ = 8 +_Val$ = 256 +_New_val$ = 264 +??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z PROC ; std::exchange, COMDAT + +; 597 : 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 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 + +; 598 : // assign _New_val to _Val, return previous _Val +; 599 : _Ty _Old_val = static_cast<_Ty&&>(_Val); + + 0003b 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 + +; 600 : _Val = static_cast<_Other&&>(_New_val); + + 00049 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR _Val$[rbp] + 00050 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 + +; 601 : return _Old_val; + + 0005d 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] + +; 602 : } + + 00061 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 +??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@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 +; COMDAT ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@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 + +; 113 : __declspec(allocator) void* _Allocate_manually_vector_aligned(const size_t _Bytes) { + +$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 + +; 114 : // allocate _Bytes manually aligned to at least _Big_allocation_alignment +; 115 : const size_t _Block_size = _Non_user_size + _Bytes; + + 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 + +; 116 : if (_Block_size <= _Bytes) { + + 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 + +; 117 : _Throw_bad_array_new_length(); // add overflow + + 00052 e8 00 00 00 00 call ?_Throw_bad_array_new_length@std@@YAXXZ ; std::_Throw_bad_array_new_length +$LN8@Allocate_m: + +; 118 : } +; 119 : +; 120 : const uintptr_t _Ptr_container = reinterpret_cast(_Traits::_Allocate(_Block_size)); + + 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: + +; 121 : _STL_VERIFY(_Ptr_container != 0, "invalid argument"); // validate even in release since we're doing p[-1] + + 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 + +; 122 : void* const _Ptr = reinterpret_cast((_Ptr_container + _Non_user_size) & ~(_Big_allocation_alignment - 1)); + + 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 + +; 123 : static_cast(_Ptr)[-1] = _Ptr_container; + + 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 + +; 124 : +; 125 : #ifdef _DEBUG +; 126 : static_cast(_Ptr)[-2] = _Big_allocation_sentinel; + + 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 + +; 127 : #endif // _DEBUG +; 128 : return _Ptr; + + 0011e 48 8b 45 48 mov rax, QWORD PTR _Ptr$[rbp] +$LN11@Allocate_m: + +; 129 : } + + 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 +_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@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z +_TEXT SEGMENT +_Arg$ = 224 +??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z PROC ; std::forward, COMDAT + +; 1454 : 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 + 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@AEBQEAD@std@@YAAEBQEADAEBQEAD@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\xstddef +; COMDAT ??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z +_TEXT SEGMENT +_Val$ = 224 +??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@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@PEAD@std@@YAPEAPEADAEAPEAD@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_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 { + +$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 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 + 00 mov r8d, 1 + 00041 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 00048 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 + +; 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 : } + + 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 +??$_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\memory +; COMDAT ??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z +_TEXT SEGMENT +$T1 = 196 +tv70 = 216 +this$ = 256 +_Ptr$ = 264 +??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z PROC ; std::unique_ptr >::unique_ptr >,0>, COMDAT + +; 2455 : explicit unique_ptr(pointer _Ptr) noexcept : _Mypair(_Zero_then_variadic_args_t{}, _Ptr) {} + +$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 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:__4E2906A2_memory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 48 89 85 d8 00 + 00 00 mov QWORD PTR tv70[rbp], rax + 00049 4c 8d 85 08 01 + 00 00 lea r8, QWORD PTR _Ptr$[rbp] + 00050 0f b6 95 c4 00 + 00 00 movzx edx, BYTE PTR $T1[rbp] + 00057 48 8b 8d d8 00 + 00 00 mov rcx, QWORD PTR tv70[rbp] + 0005e e8 00 00 00 00 call ??$?0AEAPEAV_Facet_base@std@@@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@AEAPEAV_Facet_base@1@@Z ; std::_Compressed_pair,std::_Facet_base *,1>::_Compressed_pair,std::_Facet_base *,1> + 00063 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 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 +??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z ENDP ; std::unique_ptr >::unique_ptr >,0> +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ?__autoclassinit2@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAX_K@Z +_TEXT SEGMENT +this$ = 224 +classSize$ = 232 +?__autoclassinit2@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAX_K@Z PROC ; std::unique_ptr >::__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 fc mov rdi, rsp + 00019 b9 32 00 00 00 mov ecx, 50 ; 00000032H + 0001e b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00023 f3 ab rep stosd + 00025 48 8b 8c 24 e8 + 00 00 00 mov rcx, QWORD PTR [rsp+232] + 0002d 48 8b bd e0 00 + 00 00 mov rdi, QWORD PTR this$[rbp] + 00034 33 c0 xor eax, eax + 00036 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR classSize$[rbp] + 0003d f3 aa rep stosb + 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 +?__autoclassinit2@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAX_K@Z ENDP ; std::unique_ptr >::__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_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ +_TEXT SEGMENT +this$ = 224 +?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ PROC ; std::_Compressed_pair,std::_Facet_base *,1>::_Get_first, COMDAT + +; 1343 : 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 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 + 00 00 mov rax, QWORD PTR this$[rbp] + +; 1345 : } + + 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 +?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ ENDP ; std::_Compressed_pair,std::_Facet_base *,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\memory +; COMDAT ?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ +_TEXT SEGMENT +$T1 = 200 +this$ = 256 +?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ PROC ; std::unique_ptr >::release, COMDAT + +; 2540 : pointer release() noexcept { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 08 01 + 00 00 sub rsp, 264 ; 00000108H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 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:__4E2906A2_memory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 2541 : return _STD exchange(_Mypair._Myval2, pointer()); + + 00036 48 c7 85 c8 00 + 00 00 00 00 00 + 00 mov QWORD PTR $T1[rbp], 0 + 00041 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00048 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 0004f 48 8b c8 mov rcx, rax + 00052 e8 00 00 00 00 call ??$exchange@PEAV_Facet_base@std@@PEAV12@@std@@YAPEAV_Facet_base@0@AEAPEAV10@$$QEAPEAV10@@Z ; std::exchange + 00057 90 npad 1 + +; 2542 : } + + 00058 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 +?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ ENDP ; std::unique_ptr >::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\memory +; COMDAT ??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ +_TEXT SEGMENT +tv77 = 192 +tv75 = 200 +this$ = 240 +??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ PROC ; std::unique_ptr >::~unique_ptr >, COMDAT + +; 2510 : ~unique_ptr() 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 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:__4E2906A2_memory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 2511 : if (_Mypair._Myval2) { + + 00036 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 3b je SHORT $LN2@unique_ptr + +; 2512 : _Mypair._Get_first()(_Mypair._Myval2); + + 00043 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004a 48 8b c8 mov rcx, rax + 0004d e8 00 00 00 00 call ?_Get_first@?$_Compressed_pair@U?$default_delete@V_Facet_base@std@@@std@@PEAV_Facet_base@2@$00@std@@QEAAAEAU?$default_delete@V_Facet_base@std@@@2@XZ ; std::_Compressed_pair,std::_Facet_base *,1>::_Get_first + 00052 48 89 85 c0 00 + 00 00 mov QWORD PTR tv77[rbp], rax + 00059 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00060 48 8b 00 mov rax, QWORD PTR [rax] + 00063 48 89 85 c8 00 + 00 00 mov QWORD PTR tv75[rbp], rax + 0006a 48 8b 95 c8 00 + 00 00 mov rdx, QWORD PTR tv75[rbp] + 00071 48 8b 8d c0 00 + 00 00 mov rcx, QWORD PTR tv77[rbp] + 00078 e8 00 00 00 00 call ??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z ; std::default_delete::operator() + 0007d 90 npad 1 +$LN2@unique_ptr: + +; 2513 : } +; 2514 : } + + 0007e 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 00085 5f pop rdi + 00086 5d pop rbp + 00087 c3 ret 0 +??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ ENDP ; std::unique_ptr >::~unique_ptr > +_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\memory +; COMDAT ??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv71 = 216 +tv72 = 224 +this$ = 272 +_Ptr$ = 280 +??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z PROC ; std::default_delete::operator(), COMDAT + +; 2400 : void operator()(_Ty* _Ptr) const noexcept /* strengthened */ { // delete a pointer + +$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 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:__4E2906A2_memory + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 2401 : static_assert(0 < sizeof(_Ty), "can't delete an incomplete type"); +; 2402 : delete _Ptr; + + 0003b 48 8b 85 18 01 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 00042 48 89 85 c8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 00049 48 83 bd c8 00 + 00 00 00 cmp QWORD PTR $T1[rbp], 0 + 00051 74 2f je SHORT $LN3@operator + 00053 48 8b 85 c8 00 + 00 00 mov rax, QWORD PTR $T1[rbp] + 0005a 48 8b 00 mov rax, QWORD PTR [rax] + 0005d 48 8b 00 mov rax, QWORD PTR [rax] + 00060 48 89 85 d8 00 + 00 00 mov QWORD PTR tv71[rbp], rax + 00067 ba 01 00 00 00 mov edx, 1 + 0006c 48 8b 8d c8 00 + 00 00 mov rcx, QWORD PTR $T1[rbp] + 00073 ff 95 d8 00 00 + 00 call QWORD PTR tv71[rbp] + 00079 48 89 85 e0 00 + 00 00 mov QWORD PTR tv72[rbp], rax + 00080 eb 0b jmp SHORT $LN4@operator +$LN3@operator: + 00082 48 c7 85 e0 00 + 00 00 00 00 00 + 00 mov QWORD PTR tv72[rbp], 0 +$LN4@operator: + +; 2403 : } + + 0008d 48 8d a5 f8 00 + 00 00 lea rsp, QWORD PTR [rbp+248] + 00094 5f pop rdi + 00095 5d pop rbp + 00096 c3 ret 0 +??R?$default_delete@V_Facet_base@std@@@std@@QEBAXPEAV_Facet_base@1@@Z ENDP ; std::default_delete::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\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 + +; 1454 : 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 + 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@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.27.29110\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 + +; 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@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 ??$_Get_size_of_n@$00@std@@YA_K_K@Z +_TEXT SEGMENT +_Overflow_is_possible$ = 4 +_Count$ = 256 +??$_Get_size_of_n@$00@std@@YA_K_K@Z PROC ; std::_Get_size_of_n<1>, COMDAT + +; 55 : _NODISCARD constexpr size_t _Get_size_of_n(const size_t _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 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:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 56 : constexpr bool _Overflow_is_possible = _Ty_size > 1; + + 00036 c6 45 04 00 mov BYTE PTR _Overflow_is_possible$[rbp], 0 + +; 57 : +; 58 : if _CONSTEXPR_IF (_Overflow_is_possible) { +; 59 : constexpr size_t _Max_possible = static_cast(-1) / _Ty_size; +; 60 : if (_Count > _Max_possible) { +; 61 : _Throw_bad_array_new_length(); // multiply overflow +; 62 : } +; 63 : } +; 64 : +; 65 : return _Count * _Ty_size; + + 0003a 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR _Count$[rbp] + +; 66 : } + + 00041 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 +??$_Get_size_of_n@$00@std@@YA_K_K@Z ENDP ; std::_Get_size_of_n<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 +; 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 { + +$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 + +; 217 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); + + 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: + +; 218 : } +; 219 : #endif // defined(_M_IX86) || defined(_M_X64) +; 220 : +; 221 : ::operator delete(_Ptr, _Bytes); + + 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 + +; 222 : } + + 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> +_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 + +; 955 : void _Destroy_range(_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 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 > +_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 +_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 + +; 201 : return _Allocate_manually_vector_aligned<_Traits>(_Bytes); + + 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: + +; 202 : } +; 203 : #endif // defined(_M_IX86) || defined(_M_X64) +; 204 : +; 205 : if (_Bytes != 0) { + + 00051 48 83 bd e0 00 + 00 00 00 cmp QWORD PTR _Bytes$[rbp], 0 + 00059 74 0e je SHORT $LN3@Allocate + +; 206 : return _Traits::_Allocate(_Bytes); + + 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: + +; 207 : } +; 208 : +; 209 : return nullptr; + + 00069 33 c0 xor eax, eax +$LN1@Allocate: + +; 210 : } + + 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> +_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@$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 + +; 55 : _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 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 + +; 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 0f mov rax, 1152921504606846975 ; 0fffffffffffffffH + 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 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 + +; 61 : _Throw_bad_array_new_length(); // multiply 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: + +; 62 : } +; 63 : } +; 64 : +; 65 : return _Count * _Ty_size; + + 00060 48 6b 85 20 01 + 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 +$LN3@Get_size_o: + +; 66 : } + + 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\utility +; COMDAT ??$max@_K@std@@YAAEB_KAEB_K0@Z +_TEXT SEGMENT +$T1 = 200 +tv65 = 216 +_Left$ = 256 +_Right$ = 264 +??$max@_K@std@@YAAEB_KAEB_K0@Z PROC ; std::max, COMDAT + +; 42 : const _Ty& _Left, const _Ty& _Right) noexcept(noexcept(_Left < _Right)) /* 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 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 + +; 43 : // return larger of _Left and _Right +; 44 : return _Left < _Right ? _Right : _Left; + + 0003b 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR _Left$[rbp] + 00042 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Right$[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@max + 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@max +$LN3@max: + 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@max: + 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] + +; 45 : } + + 00084 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 +??$max@_K@std@@YAAEB_KAEB_K0@Z ENDP ; std::max +_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@D@std@@YAPEADPEAD@Z +_TEXT SEGMENT +_Ptr$ = 224 +??$_Unfancy@D@std@@YAPEADPEAD@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 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 + +; 289 : return _Ptr; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + +; 290 : } + + 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 +??$_Unfancy@D@std@@YAPEADPEAD@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\xmemory +; COMDAT ??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z +_TEXT SEGMENT +$T1 = 200 +_Obj$ = 256 +<_Args_0>$ = 264 +??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z PROC ; std::_Construct_in_place, COMDAT + +; 228 : void _Construct_in_place(_Ty& _Obj, _Types&&... _Args) noexcept(is_nothrow_constructible_v<_Ty, _Types...>) { + +$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 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 + 00 00 mov rcx, QWORD PTR _Obj$[rbp] + 00042 e8 00 00 00 00 call ??$addressof@PEAD@std@@YAPEAPEADAEAPEAD@Z ; std::addressof + 00047 48 8b d0 mov rdx, rax + 0004a b9 08 00 00 00 mov ecx, 8 + 0004f e8 00 00 00 00 call ??2@YAPEAX_KPEAX@Z ; operator new + 00054 48 89 85 c8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 0005b 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR <_Args_0>$[rbp] + 00062 e8 00 00 00 00 call ??$forward@AEBQEAD@std@@YAAEBQEADAEBQEAD@Z ; std::forward + 00067 48 8b 8d c8 00 + 00 00 mov rcx, QWORD PTR $T1[rbp] + 0006e 48 8b 00 mov rax, QWORD PTR [rax] + 00071 48 89 01 mov QWORD PTR [rcx], rax + +; 229 : ::new (const_cast(static_cast(_STD addressof(_Obj)))) +; 230 : _Ty(_STD forward<_Types>(_Args)...); +; 231 : } + + 00074 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 0007b 5f pop rdi + 0007c 5d pop rbp + 0007d c3 ret 0 +??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@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\xstring +; COMDAT ??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z +_TEXT SEGMENT +_My_data$ = 8 +_Old_size$ = 40 +_New_size$ = 72 +_Old_capacity$ = 104 +_New_capacity$ = 136 +_Al$ = 168 +_New_ptr$ = 200 +_Raw_new$ = 232 +_Old_ptr$4 = 264 +__$ArrayPad$ = 472 +this$ = 512 +_Size_increase$ = 520 +_Fn$ = 528 +<_Args_0>$ = 536 +??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z PROC ; std::basic_string,std::allocator >::_Reallocate_grow_by<,char>, COMDAT + +; 4244 : basic_string& _Reallocate_grow_by(const size_type _Size_increase, _Fty _Fn, _ArgTys... _Args) { + +$LN6: + 00000 44 88 4c 24 20 mov BYTE PTR [rsp+32], r9b + 00005 44 88 44 24 18 mov BYTE PTR [rsp+24], r8b + 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 18 02 + 00 00 sub rsp, 536 ; 00000218H + 0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00022 48 8b fc mov rdi, rsp + 00025 b9 86 00 00 00 mov ecx, 134 ; 00000086H + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 38 + 02 00 00 mov rcx, QWORD PTR [rsp+568] + 00039 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00040 48 33 c5 xor rax, rbp + 00043 48 89 85 d8 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0004a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00051 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 4245 : // reallocate to increase size by _Size_increase elements, new buffer prepared by +; 4246 : // _Fn(_New_ptr, _Old_ptr, _Old_size, _Args...) +; 4247 : auto& _My_data = _Mypair._Myval2; + + 00056 48 8b 85 00 02 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + +; 4248 : const size_type _Old_size = _My_data._Mysize; + + 00061 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00065 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 00069 48 89 45 28 mov QWORD PTR _Old_size$[rbp], rax + +; 4249 : if (max_size() - _Old_size < _Size_increase) { + + 0006d 48 8b 8d 00 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00074 e8 00 00 00 00 call ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ ; std::basic_string,std::allocator >::max_size + 00079 48 2b 45 28 sub rax, QWORD PTR _Old_size$[rbp] + 0007d 48 3b 85 08 02 + 00 00 cmp rax, QWORD PTR _Size_increase$[rbp] + 00084 73 05 jae SHORT $LN2@Reallocate + +; 4250 : _Xlen_string(); // result too long + + 00086 e8 00 00 00 00 call ?_Xlen_string@std@@YAXXZ ; std::_Xlen_string +$LN2@Reallocate: + +; 4251 : } +; 4252 : +; 4253 : const size_type _New_size = _Old_size + _Size_increase; + + 0008b 48 8b 85 08 02 + 00 00 mov rax, QWORD PTR _Size_increase$[rbp] + 00092 48 8b 4d 28 mov rcx, QWORD PTR _Old_size$[rbp] + 00096 48 03 c8 add rcx, rax + 00099 48 8b c1 mov rax, rcx + 0009c 48 89 45 48 mov QWORD PTR _New_size$[rbp], rax + +; 4254 : const size_type _Old_capacity = _My_data._Myres; + + 000a0 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 000a4 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 000a8 48 89 45 68 mov QWORD PTR _Old_capacity$[rbp], rax + +; 4255 : const size_type _New_capacity = _Calculate_growth(_New_size); + + 000ac 48 8b 55 48 mov rdx, QWORD PTR _New_size$[rbp] + 000b0 48 8b 8d 00 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000b7 e8 00 00 00 00 call ?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z ; std::basic_string,std::allocator >::_Calculate_growth + 000bc 48 89 85 88 00 + 00 00 mov QWORD PTR _New_capacity$[rbp], rax + +; 4256 : auto& _Al = _Getal(); + + 000c3 48 8b 8d 00 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ca e8 00 00 00 00 call ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ ; std::basic_string,std::allocator >::_Getal + 000cf 48 89 85 a8 00 + 00 00 mov QWORD PTR _Al$[rbp], rax + +; 4257 : const pointer _New_ptr = _Al.allocate(_New_capacity + 1); // throws + + 000d6 48 8b 85 88 00 + 00 00 mov rax, QWORD PTR _New_capacity$[rbp] + 000dd 48 83 c0 01 add rax, 1 + 000e1 48 c7 c1 ff ff + ff ff mov rcx, -1 + 000e8 48 0f 42 c1 cmovb rax, rcx + 000ec 48 8b d0 mov rdx, rax + 000ef 48 8b 8d a8 00 + 00 00 mov rcx, QWORD PTR _Al$[rbp] + 000f6 e8 00 00 00 00 call ?allocate@?$allocator@D@std@@QEAAPEAD_K@Z ; std::allocator::allocate + 000fb 48 89 85 c8 00 + 00 00 mov QWORD PTR _New_ptr$[rbp], rax + +; 4258 : _My_data._Orphan_all(); + + 00102 48 8b 4d 08 mov rcx, QWORD PTR _My_data$[rbp] + 00106 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all + +; 4259 : _My_data._Mysize = _New_size; + + 0010b 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0010f 48 8b 4d 48 mov rcx, QWORD PTR _New_size$[rbp] + 00113 48 89 48 18 mov QWORD PTR [rax+24], rcx + +; 4260 : _My_data._Myres = _New_capacity; + + 00117 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 0011b 48 8b 8d 88 00 + 00 00 mov rcx, QWORD PTR _New_capacity$[rbp] + 00122 48 89 48 20 mov QWORD PTR [rax+32], rcx + +; 4261 : _Elem* const _Raw_new = _Unfancy(_New_ptr); + + 00126 48 8b 8d c8 00 + 00 00 mov rcx, QWORD PTR _New_ptr$[rbp] + 0012d e8 00 00 00 00 call ??$_Unfancy@D@std@@YAPEADPEAD@Z ; std::_Unfancy + 00132 48 89 85 e8 00 + 00 00 mov QWORD PTR _Raw_new$[rbp], rax + +; 4262 : if (_BUF_SIZE <= _Old_capacity) { + + 00139 48 83 7d 68 10 cmp QWORD PTR _Old_capacity$[rbp], 16 + 0013e 72 6e jb SHORT $LN3@Reallocate + +; 4263 : const pointer _Old_ptr = _My_data._Bx._Ptr; + + 00140 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 00144 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00148 48 89 85 08 01 + 00 00 mov QWORD PTR _Old_ptr$4[rbp], rax + +; 4264 : _Fn(_Raw_new, _Unfancy(_Old_ptr), _Old_size, _Args...); + + 0014f 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Old_ptr$4[rbp] + 00156 e8 00 00 00 00 call ??$_Unfancy@D@std@@YAPEADPEAD@Z ; std::_Unfancy + 0015b 0f b6 8d 18 02 + 00 00 movzx ecx, BYTE PTR <_Args_0>$[rbp] + 00162 88 4c 24 20 mov BYTE PTR [rsp+32], cl + 00166 4c 8b 4d 28 mov r9, QWORD PTR _Old_size$[rbp] + 0016a 4c 8b c0 mov r8, rax + 0016d 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _Raw_new$[rbp] + 00174 48 8d 8d 10 02 + 00 00 lea rcx, QWORD PTR _Fn$[rbp] + 0017b e8 00 00 00 00 call ??R@@QEBAXQEADQEBD_KD@Z ; ::operator() + +; 4265 : _Al.deallocate(_Old_ptr, _Old_capacity + 1); + + 00180 48 8b 45 68 mov rax, QWORD PTR _Old_capacity$[rbp] + 00184 48 ff c0 inc rax + 00187 4c 8b c0 mov r8, rax + 0018a 48 8b 95 08 01 + 00 00 mov rdx, QWORD PTR _Old_ptr$4[rbp] + 00191 48 8b 8d a8 00 + 00 00 mov rcx, QWORD PTR _Al$[rbp] + 00198 e8 00 00 00 00 call ?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z ; std::allocator::deallocate + +; 4266 : _My_data._Bx._Ptr = _New_ptr; + + 0019d 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 001a1 48 8b 8d c8 00 + 00 00 mov rcx, QWORD PTR _New_ptr$[rbp] + 001a8 48 89 48 08 mov QWORD PTR [rax+8], rcx + +; 4267 : } else { + + 001ac eb 44 jmp SHORT $LN4@Reallocate +$LN3@Reallocate: + +; 4268 : _Fn(_Raw_new, _My_data._Bx._Buf, _Old_size, _Args...); + + 001ae 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 001b2 48 83 c0 08 add rax, 8 + 001b6 0f b6 8d 18 02 + 00 00 movzx ecx, BYTE PTR <_Args_0>$[rbp] + 001bd 88 4c 24 20 mov BYTE PTR [rsp+32], cl + 001c1 4c 8b 4d 28 mov r9, QWORD PTR _Old_size$[rbp] + 001c5 4c 8b c0 mov r8, rax + 001c8 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _Raw_new$[rbp] + 001cf 48 8d 8d 10 02 + 00 00 lea rcx, QWORD PTR _Fn$[rbp] + 001d6 e8 00 00 00 00 call ??R@@QEBAXQEADQEBD_KD@Z ; ::operator() + +; 4269 : _Construct_in_place(_My_data._Bx._Ptr, _New_ptr); + + 001db 48 8b 45 08 mov rax, QWORD PTR _My_data$[rbp] + 001df 48 83 c0 08 add rax, 8 + 001e3 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR _New_ptr$[rbp] + 001ea 48 8b c8 mov rcx, rax + 001ed e8 00 00 00 00 call ??$_Construct_in_place@PEADAEBQEAD@std@@YAXAEAPEADAEBQEAD@Z ; std::_Construct_in_place +$LN4@Reallocate: + +; 4270 : } +; 4271 : +; 4272 : return *this; + + 001f2 48 8b 85 00 02 + 00 00 mov rax, QWORD PTR this$[rbp] +$LN5@Reallocate: + +; 4273 : } + + 001f9 48 8b f8 mov rdi, rax + 001fc 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00200 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z$rtcFrameData + 00207 e8 00 00 00 00 call _RTC_CheckStackVars + 0020c 48 8b c7 mov rax, rdi + 0020f 48 8b 8d d8 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00216 48 33 cd xor rcx, rbp + 00219 e8 00 00 00 00 call __security_check_cookie + 0021e 48 8d a5 e8 01 + 00 00 lea rsp, QWORD PTR [rbp+488] + 00225 5f pop rdi + 00226 5d pop rbp + 00227 c3 ret 0 +??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z ENDP ; std::basic_string,std::allocator >::_Reallocate_grow_by<,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\xstring +; COMDAT ??R@@QEBAXQEADQEBD_KD@Z +_TEXT SEGMENT +$T1 = 196 +this$ = 256 +_New_ptr$ = 264 +_Old_ptr$ = 272 +_Old_size$ = 280 +_Ch$ = 288 +??R@@QEBAXQEADQEBD_KD@Z PROC ; ::operator(), COMDAT + +; 3619 : [](_Elem* const _New_ptr, const _Elem* const _Old_ptr, const size_type _Old_size, const _Elem _Ch) { + +$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 08 01 + 00 00 sub rsp, 264 ; 00000108H + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 3620 : _Traits::copy(_New_ptr, _Old_ptr, _Old_size); + + 00045 4c 8b 85 18 01 + 00 00 mov r8, QWORD PTR _Old_size$[rbp] + 0004c 48 8b 95 10 01 + 00 00 mov rdx, QWORD PTR _Old_ptr$[rbp] + 00053 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _New_ptr$[rbp] + 0005a e8 00 00 00 00 call ?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z ; std::_Narrow_char_traits::copy + +; 3621 : _Traits::assign(_New_ptr[_Old_size], _Ch); + + 0005f 48 8b 85 18 01 + 00 00 mov rax, QWORD PTR _Old_size$[rbp] + 00066 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _New_ptr$[rbp] + 0006d 48 03 c8 add rcx, rax + 00070 48 8b c1 mov rax, rcx + 00073 48 8d 95 20 01 + 00 00 lea rdx, QWORD PTR _Ch$[rbp] + 0007a 48 8b c8 mov rcx, rax + 0007d e8 00 00 00 00 call ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign + +; 3622 : _Traits::assign(_New_ptr[_Old_size + 1], _Elem()); + + 00082 c6 85 c4 00 00 + 00 00 mov BYTE PTR $T1[rbp], 0 + 00089 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR _New_ptr$[rbp] + 00090 48 8b 8d 18 01 + 00 00 mov rcx, QWORD PTR _Old_size$[rbp] + 00097 48 8d 44 08 01 lea rax, QWORD PTR [rax+rcx+1] + 0009c 48 8d 95 c4 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 000a3 48 8b c8 mov rcx, rax + 000a6 e8 00 00 00 00 call ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign + +; 3623 : }, + + 000ab 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 000b2 5f pop rdi + 000b3 5d pop rbp + 000b4 c3 ret 0 +??R@@QEBAXQEADQEBD_KD@Z ENDP ; ::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 +; COMDAT ??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z +_TEXT SEGMENT +_Obj$ = 224 +??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z PROC ; std::_Destroy_in_place, COMDAT + +; 267 : void _Destroy_in_place(_Ty& _Obj) 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:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 90 npad 1 + +; 268 : _Obj.~_Ty(); +; 269 : } + + 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 +??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z ENDP ; std::_Destroy_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\xstddef +; COMDAT ??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z +_TEXT SEGMENT +_Val$ = 224 +??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z PROC ; std::addressof const >, 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@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z ENDP ; std::addressof 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\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 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 + +; 289 : return _Ptr; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + +; 290 : } + + 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 +??$_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.27.29110\include\xmemory +; COMDAT ??$?0$$V@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@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@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z PROC ; std::_Compressed_pair,std::_String_val >,1>::_Compressed_pair,std::_String_val >,1><>, COMDAT + +; 1336 : : _Ty1(), _Myval2(_STD forward<_Other2>(_Val2)...) {} + +$LN4: + 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:__A58979FC_xmemory + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003a 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00041 e8 00 00 00 00 call ??0?$allocator@D@std@@QEAA@XZ ; std::allocator::allocator + 00046 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?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ; std::_String_val >::_String_val > + 00055 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005c 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 +??$?0$$V@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z ENDP ; std::_Compressed_pair,std::_String_val >,1>::_Compressed_pair,std::_String_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 +; COMDAT ??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z +_TEXT SEGMENT +this$ = 224 +__formal$ = 232 +??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z PROC ; std::allocator::allocator, COMDAT + +; 799 : constexpr allocator(const allocator<_Other>&) noexcept {} + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 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 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 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 +??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@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 +; 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 +$T1 = 232 +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) { + +$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 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 + 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 + +; 1103 : _Construct_in_place(*_New_proxy, this); + + 00058 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005f 48 89 85 e8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 00066 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 + +; 1104 : _Myproxy = _New_proxy; + + 00076 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 + +; 1105 : _New_proxy->_Mycont = this; + + 00084 48 8b 45 08 mov rax, QWORD PTR _New_proxy$[rbp] + 00088 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008f 48 89 08 mov QWORD PTR [rax], rcx + +; 1106 : } + + 00092 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 +??$_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 +; 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 { + +$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 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 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 00042 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 + +; 1031 : } + + 0004f 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 +??$_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 +; COMDAT ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z +_TEXT SEGMENT +_Old_val$ = 8 +_Val$ = 256 +_New_val$ = 264 +??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z PROC ; std::exchange, COMDAT + +; 597 : 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 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 + +; 598 : // assign _New_val to _Val, return previous _Val +; 599 : _Ty _Old_val = static_cast<_Ty&&>(_Val); + + 0003b 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 + +; 600 : _Val = static_cast<_Other&&>(_New_val); + + 00049 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR _Val$[rbp] + 00050 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 + +; 601 : return _Old_val; + + 0005d 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] + +; 602 : } + + 00061 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 +??$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 +; 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 {} + +$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 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 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 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 +??$?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 +; 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) { + +$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 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 + 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> + +; 808 : } + + 0004f 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 +?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\xstddef +; COMDAT ??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@0@AEAV10@@Z +_TEXT SEGMENT +_Val$ = 224 +??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@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?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@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\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 + +; 67 : 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 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 + +; 68 : // return smaller of _Left and _Right +; 69 : return _Right < _Left ? _Right : _Left; + + 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] + +; 70 : } + + 00084 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 +_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 +; COMDAT ??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z +_TEXT SEGMENT +_Lock$6 = 4 +_Psave$7 = 40 +_Id$8 = 72 +_Pf$9 = 104 +_Pfmod$10 = 136 +_Psave_guard$11 = 168 +$T12 = 392 +__$ArrayPad$ = 408 +_Loc$ = 448 +??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z PROC ; std::use_facet >, COMDAT + +; 426 : const _Facet& __CRTDECL use_facet(const locale& _Loc) { // get facet reference from locale + +$LN11: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec c8 01 + 00 00 sub rsp, 456 ; 000001c8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 8b fc mov rdi, rsp + 00016 b9 72 00 00 00 mov ecx, 114 ; 00000072H + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 e8 + 01 00 00 mov rcx, QWORD PTR [rsp+488] + 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 98 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0E648B51_xlocale + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 427 : _BEGIN_LOCK(_LOCK_LOCALE) // the thread lock, make get atomic + + 00047 33 d2 xor edx, edx + 00049 48 8d 4d 04 lea rcx, QWORD PTR _Lock$6[rbp] + 0004d ff 15 00 00 00 + 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z + 00053 90 npad 1 + +; 428 : const locale::facet* _Psave = _Facetptr<_Facet>::_Psave; // static pointer to lazy facet + + 00054 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR ?_Psave@?$_Facetptr@V?$codecvt@DDU_Mbstatet@@@std@@@std@@2PEBVfacet@locale@2@EB ; std::_Facetptr >::_Psave + 0005b 48 89 45 28 mov QWORD PTR _Psave$7[rbp], rax + +; 429 : +; 430 : const size_t _Id = _Facet::id; + + 0005f 48 8b 0d 00 00 + 00 00 mov rcx, QWORD PTR __imp_?id@?$codecvt@DDU_Mbstatet@@@std@@2V0locale@2@A + 00066 ff 15 00 00 00 + 00 call QWORD PTR __imp_??Bid@locale@std@@QEAA_KXZ + 0006c 48 89 45 48 mov QWORD PTR _Id$8[rbp], rax + +; 431 : const locale::facet* _Pf = _Loc._Getfacet(_Id); + + 00070 48 8b 55 48 mov rdx, QWORD PTR _Id$8[rbp] + 00074 48 8b 8d c0 01 + 00 00 mov rcx, QWORD PTR _Loc$[rbp] + 0007b e8 00 00 00 00 call ?_Getfacet@locale@std@@QEBAPEBVfacet@12@_K@Z ; std::locale::_Getfacet + 00080 48 89 45 68 mov QWORD PTR _Pf$9[rbp], rax + +; 432 : +; 433 : if (!_Pf) { + + 00084 48 83 7d 68 00 cmp QWORD PTR _Pf$9[rbp], 0 + 00089 0f 85 af 00 00 + 00 jne $LN2@use_facet + +; 434 : if (_Psave) { + + 0008f 48 83 7d 28 00 cmp QWORD PTR _Psave$7[rbp], 0 + 00094 74 0d je SHORT $LN3@use_facet + +; 435 : _Pf = _Psave; // lazy facet already allocated + + 00096 48 8b 45 28 mov rax, QWORD PTR _Psave$7[rbp] + 0009a 48 89 45 68 mov QWORD PTR _Pf$9[rbp], rax + 0009e e9 9b 00 00 00 jmp $LN2@use_facet +$LN3@use_facet: + +; 436 : } else if (_Facet::_Getcat(&_Psave, &_Loc) == static_cast(-1)) { + + 000a3 48 8b 95 c0 01 + 00 00 mov rdx, QWORD PTR _Loc$[rbp] + 000aa 48 8d 4d 28 lea rcx, QWORD PTR _Psave$7[rbp] + 000ae ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcat@?$codecvt@DDU_Mbstatet@@@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z + 000b4 48 83 f8 ff cmp rax, -1 + 000b8 75 08 jne SHORT $LN5@use_facet + +; 437 : #if _HAS_EXCEPTIONS +; 438 : _Throw_bad_cast(); // lazy disallowed + + 000ba e8 00 00 00 00 call ?_Throw_bad_cast@std@@YAXXZ ; std::_Throw_bad_cast + 000bf 90 npad 1 + +; 439 : #else // _HAS_EXCEPTIONS +; 440 : _CSTD abort(); // lazy disallowed +; 441 : #endif // _HAS_EXCEPTIONS +; 442 : } else { // queue up lazy facet for destruction + + 000c0 eb 7c jmp SHORT $LN2@use_facet +$LN5@use_facet: + +; 443 : auto _Pfmod = const_cast(_Psave); + + 000c2 48 8b 45 28 mov rax, QWORD PTR _Psave$7[rbp] + 000c6 48 89 85 88 00 + 00 00 mov QWORD PTR _Pfmod$10[rbp], rax + +; 444 : unique_ptr<_Facet_base> _Psave_guard(static_cast<_Facet_base*>(_Pfmod)); + + 000cd ba 08 00 00 00 mov edx, 8 + 000d2 48 8d 8d a8 00 + 00 00 lea rcx, QWORD PTR _Psave_guard$11[rbp] + 000d9 e8 00 00 00 00 call ?__autoclassinit2@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAX_K@Z + 000de 48 8b 95 88 00 + 00 00 mov rdx, QWORD PTR _Pfmod$10[rbp] + 000e5 48 8d 8d a8 00 + 00 00 lea rcx, QWORD PTR _Psave_guard$11[rbp] + 000ec e8 00 00 00 00 call ??$?0U?$default_delete@V_Facet_base@std@@@std@@$0A@@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@PEAV_Facet_base@1@@Z ; std::unique_ptr >::unique_ptr >,0> + 000f1 90 npad 1 + +; 445 : +; 446 : #if defined(_M_CEE) +; 447 : _Facet_Register_m(_Pfmod); +; 448 : #else // defined(_M_CEE) +; 449 : _Facet_Register(_Pfmod); + + 000f2 48 8b 8d 88 00 + 00 00 mov rcx, QWORD PTR _Pfmod$10[rbp] + 000f9 e8 00 00 00 00 call ?_Facet_Register@std@@YAXPEAV_Facet_base@1@@Z ; std::_Facet_Register + +; 450 : #endif // defined(_M_CEE) +; 451 : +; 452 : _Pfmod->_Incref(); + + 000fe 48 8b 85 88 00 + 00 00 mov rax, QWORD PTR _Pfmod$10[rbp] + 00105 48 8b 00 mov rax, QWORD PTR [rax] + 00108 48 8b 8d 88 00 + 00 00 mov rcx, QWORD PTR _Pfmod$10[rbp] + 0010f ff 50 08 call QWORD PTR [rax+8] + +; 453 : _Facetptr<_Facet>::_Psave = _Psave; + + 00112 48 8b 45 28 mov rax, QWORD PTR _Psave$7[rbp] + 00116 48 89 05 00 00 + 00 00 mov QWORD PTR ?_Psave@?$_Facetptr@V?$codecvt@DDU_Mbstatet@@@std@@@std@@2PEBVfacet@locale@2@EB, rax ; std::_Facetptr >::_Psave + +; 454 : _Pf = _Psave; + + 0011d 48 8b 45 28 mov rax, QWORD PTR _Psave$7[rbp] + 00121 48 89 45 68 mov QWORD PTR _Pf$9[rbp], rax + +; 455 : +; 456 : (void) _Psave_guard.release(); + + 00125 48 8d 8d a8 00 + 00 00 lea rcx, QWORD PTR _Psave_guard$11[rbp] + 0012c e8 00 00 00 00 call ?release@?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAAPEAV_Facet_base@2@XZ ; std::unique_ptr >::release + 00131 90 npad 1 + +; 457 : } + + 00132 48 8d 8d a8 00 + 00 00 lea rcx, QWORD PTR _Psave_guard$11[rbp] + 00139 e8 00 00 00 00 call ??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ ; std::unique_ptr >::~unique_ptr > +$LN2@use_facet: + +; 458 : } +; 459 : +; 460 : return static_cast(*_Pf); // should be dynamic_cast + + 0013e 48 8b 45 68 mov rax, QWORD PTR _Pf$9[rbp] + 00142 48 89 85 88 01 + 00 00 mov QWORD PTR $T12[rbp], rax + 00149 48 8d 4d 04 lea rcx, QWORD PTR _Lock$6[rbp] + 0014d ff 15 00 00 00 + 00 call QWORD PTR __imp_??1_Lockit@std@@QEAA@XZ + 00153 48 8b 85 88 01 + 00 00 mov rax, QWORD PTR $T12[rbp] + +; 461 : _END_LOCK() +; 462 : } // end of use_facet body + + 0015a 48 8b f8 mov rdi, rax + 0015d 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00161 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z$rtcFrameData + 00168 e8 00 00 00 00 call _RTC_CheckStackVars + 0016d 48 8b c7 mov rax, rdi + 00170 48 8b 8d 98 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00177 48 33 cd xor rcx, rbp + 0017a e8 00 00 00 00 call __security_check_cookie + 0017f 48 8d a5 a8 01 + 00 00 lea rsp, QWORD PTR [rbp+424] + 00186 5f pop rdi + 00187 5d pop rbp + 00188 c3 ret 0 +$LN10@use_facet: +??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z ENDP ; std::use_facet > +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +_Lock$6 = 4 +_Psave$7 = 40 +_Id$8 = 72 +_Pf$9 = 104 +_Pfmod$10 = 136 +_Psave_guard$11 = 168 +$T12 = 392 +__$ArrayPad$ = 408 +_Loc$ = 448 +?dtor$0@?0???$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z@4HA PROC ; `std::use_facet >'::`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$6[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???$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z@4HA ENDP ; `std::use_facet >'::`1'::dtor$0 +text$x ENDS +; COMDAT text$x +text$x SEGMENT +_Lock$6 = 4 +_Psave$7 = 40 +_Id$8 = 72 +_Pf$9 = 104 +_Pfmod$10 = 136 +_Psave_guard$11 = 168 +$T12 = 392 +__$ArrayPad$ = 408 +_Loc$ = 448 +?dtor$1@?0???$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z@4HA PROC ; `std::use_facet >'::`1'::dtor$1 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d a8 00 + 00 00 lea rcx, QWORD PTR _Psave_guard$11[rbp] + 0001b e8 00 00 00 00 call ??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ ; std::unique_ptr >::~unique_ptr > + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$1@?0???$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z@4HA ENDP ; `std::use_facet >'::`1'::dtor$1 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +_Lock$6 = 4 +_Psave$7 = 40 +_Id$8 = 72 +_Pf$9 = 104 +_Pfmod$10 = 136 +_Psave_guard$11 = 168 +$T12 = 392 +__$ArrayPad$ = 408 +_Loc$ = 448 +?dtor$0@?0???$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z@4HA PROC ; `std::use_facet >'::`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$6[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???$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z@4HA ENDP ; `std::use_facet >'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +_Lock$6 = 4 +_Psave$7 = 40 +_Id$8 = 72 +_Pf$9 = 104 +_Pfmod$10 = 136 +_Psave_guard$11 = 168 +$T12 = 392 +__$ArrayPad$ = 408 +_Loc$ = 448 +?dtor$1@?0???$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z@4HA PROC ; `std::use_facet >'::`1'::dtor$1 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d a8 00 + 00 00 lea rcx, QWORD PTR _Psave_guard$11[rbp] + 0001b e8 00 00 00 00 call ??1?$unique_ptr@V_Facet_base@std@@U?$default_delete@V_Facet_base@std@@@2@@std@@QEAA@XZ ; std::unique_ptr >::~unique_ptr > + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$1@?0???$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z@4HA ENDP ; `std::use_facet >'::`1'::dtor$1 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp +; COMDAT main +_TEXT SEGMENT +Block$ = 8 +Obf$ = 88 +AsmSize$ = 132 +Asm$ = 168 +Exec$ = 200 +tv92 = 404 +tv90 = 408 +__$ArrayPad$ = 416 +main PROC ; COMDAT + +; 68 : { + +$LN4: + 00000 40 55 push rbp + 00002 57 push rdi + 00003 48 81 ec d8 01 + 00 00 sub rsp, 472 ; 000001d8H + 0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0000f 48 8b fc mov rdi, rsp + 00012 b9 76 00 00 00 mov ecx, 118 ; 00000076H + 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 a0 01 + 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 + +; 69 : XedTablesInit(); + + 0003b e8 00 00 00 00 call xed_tables_init + +; 70 : 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 + +; 71 : +; 72 : NATIVE_CODE_BLOCK Block; + + 0004f 48 8d 4d 08 lea rcx, QWORD PTR Block$[rbp] + 00053 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 00058 90 npad 1 + +; 73 : NcDisassemble(&Block, meme1, sizeof(meme1)); + + 00059 41 b8 30 00 00 + 00 mov r8d, 48 ; 00000030H + 0005f 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?meme1@@3PAEA ; meme1 + 00066 48 8d 4d 08 lea rcx, QWORD PTR Block$[rbp] + 0006a e8 00 00 00 00 call ?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z ; NcDisassemble + +; 74 : OBFUSCATOR Obf; +; 75 : Obf.Flags = 0; + + 0006f c7 45 5c 00 00 + 00 00 mov DWORD PTR Obf$[rbp+4], 0 + +; 76 : Obf.MinInstCount = 3; + + 00076 c7 45 58 03 00 + 00 00 mov DWORD PTR Obf$[rbp], 3 + +; 77 : Obf.GlobalBlock = &Block; + + 0007d 48 8d 45 08 lea rax, QWORD PTR Block$[rbp] + 00081 48 89 45 60 mov QWORD PTR Obf$[rbp+8], rax + +; 78 : ObfObfuscate(&Obf, &Block); + + 00085 48 8d 55 08 lea rdx, QWORD PTR Block$[rbp] + 00089 48 8d 4d 58 lea rcx, QWORD PTR Obf$[rbp] + 0008d e8 00 00 00 00 call ?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfObfuscate + +; 79 : ObfObfuscate(&Obf, &Block); + + 00092 48 8d 55 08 lea rdx, QWORD PTR Block$[rbp] + 00096 48 8d 4d 58 lea rcx, QWORD PTR Obf$[rbp] + 0009a e8 00 00 00 00 call ?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfObfuscate + +; 80 : //NcDebugPrint(&Block); +; 81 : +; 82 : ULONG AsmSize; +; 83 : PVOID Asm = NcAssemble(&Block, &AsmSize); + + 0009f 48 8d 95 84 00 + 00 00 lea rdx, QWORD PTR AsmSize$[rbp] + 000a6 48 8d 4d 08 lea rcx, QWORD PTR Block$[rbp] + 000aa e8 00 00 00 00 call ?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z ; NcAssemble + 000af 48 89 85 a8 00 + 00 00 mov QWORD PTR Asm$[rbp], rax + +; 84 : PVOID Exec = MakeExecutableBuffer(Asm, AsmSize); + + 000b6 8b 95 84 00 00 + 00 mov edx, DWORD PTR AsmSize$[rbp] + 000bc 48 8b 8d a8 00 + 00 00 mov rcx, QWORD PTR Asm$[rbp] + 000c3 e8 00 00 00 00 call ?MakeExecutableBuffer@@YAPEAXPEAXK@Z ; MakeExecutableBuffer + 000c8 48 89 85 c8 00 + 00 00 mov QWORD PTR Exec$[rbp], rax + +; 85 : typedef ULONG(*FnGetFour)(); +; 86 : printf("numba is: %u size is %u\n\n", ((FnGetFour)Exec)(), AsmSize); + + 000cf 8b 85 84 00 00 + 00 mov eax, DWORD PTR AsmSize$[rbp] + 000d5 89 85 94 01 00 + 00 mov DWORD PTR tv92[rbp], eax + 000db ff 95 c8 00 00 + 00 call QWORD PTR Exec$[rbp] + 000e1 89 85 98 01 00 + 00 mov DWORD PTR tv90[rbp], eax + 000e7 44 8b 85 94 01 + 00 00 mov r8d, DWORD PTR tv92[rbp] + 000ee 8b 95 98 01 00 + 00 mov edx, DWORD PTR tv90[rbp] + 000f4 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0BK@MMBIMAKC@numba?5is?3?5?$CFu?5size?5is?5?$CFu?6?6@ + 000fb e8 00 00 00 00 call printf + +; 87 : PutToFile(Asm, AsmSize); + + 00100 8b 95 84 00 00 + 00 mov edx, DWORD PTR AsmSize$[rbp] + 00106 48 8b 8d a8 00 + 00 00 mov rcx, QWORD PTR Asm$[rbp] + 0010d e8 00 00 00 00 call ?PutToFile@@YAXPEAXK@Z ; PutToFile + 00112 90 npad 1 + +; 88 : +; 89 : +; 90 : //PNATIVE_CODE_LINK Return1776 = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, meme1, sizeof(meme1)); +; 91 : //PNATIVE_CODE_LINK RetInst = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, meme2, sizeof(meme2)); +; 92 : //PNATIVE_CODE_BLOCK Pre1 = JitEmitPreRipMov(Return1776); +; 93 : //PNATIVE_CODE_BLOCK Post1 = JitEmitPostRipMov(Return1776); +; 94 : //PNATIVE_CODE_BLOCK Pre2 = JitEmitPreRipMov(RetInst); +; 95 : //PNATIVE_CODE_BLOCK Post2 = JitEmitPostRipMov(RetInst); +; 96 : +; 97 : //NcAppendToBlock(Pre1, Return1776); +; 98 : //NcInsertBlockAfter(Pre1->End, Post1, 0); +; 99 : //Pre1->End = Post1->End; +; 100 : //NcInsertBlockAfter(Pre1->End, Pre2, 0); +; 101 : //Pre1->End = Pre2->End; +; 102 : //NcAppendToBlock(Pre1, RetInst); +; 103 : //NcInsertBlockAfter(Pre1->End, Post2, 0); +; 104 : //Pre1->End = Post2->End; +; 105 : +; 106 : ///*Pre->Start = Return1776; +; 107 : //Pre->End = Return1776;*/ +; 108 : +; 109 : //for (ULONG i = 0; i < Return1776->RawDataSize; i++) +; 110 : // Return1776->RawData[i] = (UCHAR)rand(); +; 111 : //for (ULONG i = 0; i < RetInst->RawDataSize; i++) +; 112 : // RetInst->RawData[i] = (UCHAR)rand(); +; 113 : +; 114 : +; 115 : +; 116 : //ULONG AsmLen; +; 117 : //PVOID Asm = NcAssemble(Pre1, &AsmLen); +; 118 : //PUCHAR Tb = (PUCHAR)Asm; +; 119 : //for (uint32_t i = 0; i < AsmLen; i++) +; 120 : //{ +; 121 : // std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)Tb[i] << ' '; +; 122 : //} +; 123 : +; 124 : //system("pause"); +; 125 : +; 126 : //typedef ULONG64(*FnGet1776)(); +; 127 : //FnGet1776 ExecBuffer = (FnGet1776)MakeExecutableBuffer(Asm, AsmLen); +; 128 : //if (ExecBuffer) +; 129 : //{ +; 130 : // printf("The numba was: %X\n", ExecBuffer()); +; 131 : // printf("The numba was: %X\n", ExecBuffer()); +; 132 : +; 133 : // printf("The numba was: %X\n", ExecBuffer()); +; 134 : +; 135 : // printf("The numba was: %X\n", ExecBuffer()); +; 136 : +; 137 : //} +; 138 : +; 139 : +; 140 : //NcDebugPrint(Post); +; 141 : +; 142 : +; 143 : +; 144 : /*NATIVE_CODE_BLOCK Block; +; 145 : NcDisassemble(&Block, TestBuffer, TestBufferSize); +; 146 : PNATIVE_CODE_LINK NewLink = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, meme1, sizeof(meme1)); +; 147 : +; 148 : NcInsertLinkBefore(Block.End->Prev->Prev->Prev->Prev, NewLink); +; 149 : ULONG AssembledSize; +; 150 : PVOID AssembledBlock = NcAssemble(&Block, &AssembledSize); +; 151 : if (!AssembledBlock || !AssembledSize) +; 152 : { +; 153 : printf("Something failed nicka.\n"); +; 154 : system("pause"); +; 155 : return -1; +; 156 : } +; 157 : PUCHAR Tb = (PUCHAR)AssembledBlock; +; 158 : for (uint32_t i = 0; i < AssembledSize; i++) +; 159 : { +; 160 : std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)Tb[i] << ' '; +; 161 : } +; 162 : */ +; 163 : +; 164 : +; 165 : //PNATIVE_CODE_BLOCK OpaqueBranch = ObfGenOpaqueBranch(Block.Start, Block.End); +; 166 : //NcDebugPrint(OpaqueBranch); +; 167 : +; 168 : +; 169 : +; 170 : /*NATIVE_CODE_LINK T; +; 171 : T.RawDataSize = 10; +; 172 : T.RawData = new UCHAR[10]; +; 173 : memset(T.RawData, 0xAA, 10); +; 174 : JIT_BITWISE_DATA Data; +; 175 : RtlSecureZeroMemory(&Data, sizeof(JIT_BITWISE_DATA)); +; 176 : PNATIVE_CODE_BLOCK NewBlock = JitEmitPreRipMov(&T); +; 177 : if (NewBlock) +; 178 : { +; 179 : printf("\n"); +; 180 : NcDebugPrint(NewBlock); +; 181 : printf("\n"); +; 182 : NcPrintBlockCode(NewBlock); +; 183 : } +; 184 : system("pause");*/ +; 185 : +; 186 : } + + 00113 48 8d 4d 08 lea rcx, QWORD PTR Block$[rbp] + 00117 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 0011c 33 c0 xor eax, eax + 0011e 8b f8 mov edi, eax + 00120 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00124 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:main$rtcFrameData + 0012b e8 00 00 00 00 call _RTC_CheckStackVars + 00130 8b c7 mov eax, edi + 00132 48 8b 8d a0 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00139 48 33 cd xor rcx, rbp + 0013c e8 00 00 00 00 call __security_check_cookie + 00141 48 8d a5 b8 01 + 00 00 lea rsp, QWORD PTR [rbp+440] + 00148 5f pop rdi + 00149 5d pop rbp + 0014a c3 ret 0 +main ENDP +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +Block$ = 8 +Obf$ = 88 +AsmSize$ = 132 +Asm$ = 168 +Exec$ = 200 +tv92 = 404 +tv90 = 408 +__$ArrayPad$ = 416 +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 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 +Block$ = 8 +Obf$ = 88 +AsmSize$ = 132 +Asm$ = 168 +Exec$ = 200 +tv92 = 404 +tv90 = 408 +__$ArrayPad$ = 416 +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 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 ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ +_TEXT SEGMENT +this$ = 224 +??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ PROC ; std::basic_ofstream >::`vbase destructor', 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 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 + 00 00 mov rax, QWORD PTR this$[rbp] + 00031 48 05 a8 00 00 + 00 add rax, 168 ; 000000a8H + 00037 48 8b c8 mov rcx, rax + 0003a e8 00 00 00 00 call ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ ; std::basic_ofstream >::~basic_ofstream > + 0003f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00046 48 05 a8 00 00 + 00 add rax, 168 ; 000000a8H + 0004c 48 8b c8 mov rcx, rax + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ + 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 +??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ ENDP ; std::basic_ofstream >::`vbase destructor' +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ??_G?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z +_TEXT SEGMENT +this$ = 224 +__flags$ = 232 +??_G?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z PROC ; std::basic_ofstream >::`scalar deleting destructor', COMDAT +$LN4: + 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b 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 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00035 48 2d a8 00 00 + 00 sub rax, 168 ; 000000a8H + 0003b 48 8b c8 mov rcx, rax + 0003e e8 00 00 00 00 call ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ + 00043 8b 85 e8 00 00 + 00 mov eax, DWORD PTR __flags$[rbp] + 00049 83 e0 01 and eax, 1 + 0004c 85 c0 test eax, eax + 0004e 74 1a je SHORT $LN2@scalar + 00050 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00057 48 2d a8 00 00 + 00 sub rax, 168 ; 000000a8H + 0005d ba 08 01 00 00 mov edx, 264 ; 00000108H + 00062 48 8b c8 mov rcx, rax + 00065 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete +$LN2@scalar: + 0006a 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00071 48 2d a8 00 00 + 00 sub rax, 168 ; 000000a8H + 00077 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0007e 5f pop rdi + 0007f 5d pop rbp + 00080 c3 ret 0 +??_G?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z ENDP ; std::basic_ofstream >::`scalar deleting destructor' +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ?__autoclassinit2@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAX_K@Z +_TEXT SEGMENT +this$ = 224 +classSize$ = 232 +?__autoclassinit2@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAX_K@Z PROC ; std::basic_ofstream >::__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 fc mov rdi, rsp + 00019 b9 32 00 00 00 mov ecx, 50 ; 00000032H + 0001e b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00023 f3 ab rep stosd + 00025 48 8b 8c 24 e8 + 00 00 00 mov rcx, QWORD PTR [rsp+232] + 0002d 48 8b bd e0 00 + 00 00 mov rdi, QWORD PTR this$[rbp] + 00034 33 c0 xor eax, eax + 00036 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR classSize$[rbp] + 0003d f3 aa rep stosb + 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 +?__autoclassinit2@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAX_K@Z ENDP ; std::basic_ofstream >::__autoclassinit2 +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ??_G?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z +_TEXT SEGMENT +this$ = 224 +__flags$ = 232 +??_G?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z PROC ; std::basic_filebuf >::`scalar deleting destructor', COMDAT +$LN4: + 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00035 e8 00 00 00 00 call ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ ; std::basic_filebuf >::~basic_filebuf > + 0003a 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 98 00 00 00 mov edx, 152 ; 00000098H + 0004c 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 +$LN2@scalar: + 00058 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005f 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 +??_G?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAPEAXI@Z ENDP ; std::basic_filebuf >::`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\fstream +; COMDAT ?_Set_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ +_TEXT SEGMENT +this$ = 224 +?_Set_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ PROC ; std::basic_filebuf >::_Set_back, COMDAT + +; 779 : void _Set_back() { // set up putback area + +$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 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:__88EC1446_fstream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 780 : if (_Mysb::eback() != &_Mychar) { // save current get buffer + + 00036 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0003d ff 15 00 00 00 + 00 call QWORD PTR __imp_?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ + 00043 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0004a 48 83 c1 70 add rcx, 112 ; 00000070H + 0004e 48 3b c1 cmp rax, rcx + 00051 74 36 je SHORT $LN2@Set_back + +; 781 : _Set_eback = _Mysb::eback(); + + 00053 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005a ff 15 00 00 00 + 00 call QWORD PTR __imp_?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ + 00060 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00067 48 89 81 88 00 + 00 00 mov QWORD PTR [rcx+136], rax + +; 782 : _Set_egptr = _Mysb::egptr(); + + 0006e 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00075 ff 15 00 00 00 + 00 call QWORD PTR __imp_?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ + 0007b 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00082 48 89 81 90 00 + 00 00 mov QWORD PTR [rcx+144], rax +$LN2@Set_back: + +; 783 : } +; 784 : _Mysb::setg(&_Mychar, &_Mychar, &_Mychar + 1); + + 00089 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00090 48 83 c0 71 add rax, 113 ; 00000071H + 00094 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0009b 48 83 c1 70 add rcx, 112 ; 00000070H + 0009f 48 8b 95 e0 00 + 00 00 mov rdx, QWORD PTR this$[rbp] + 000a6 48 83 c2 70 add rdx, 112 ; 00000070H + 000aa 4c 8b c8 mov r9, rax + 000ad 4c 8b c1 mov r8, rcx + 000b0 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000b7 ff 15 00 00 00 + 00 call QWORD PTR __imp_?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z + +; 785 : } + + 000bd 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 000c4 5f pop rdi + 000c5 5d pop rbp + 000c6 c3 ret 0 +?_Set_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ENDP ; std::basic_filebuf >::_Set_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\fstream +; COMDAT ?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ +_TEXT SEGMENT +this$ = 224 +?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ PROC ; std::basic_filebuf >::_Reset_back, COMDAT + +; 773 : void _Reset_back() { // restore buffer after putback + +$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 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:__88EC1446_fstream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 774 : if (_Mysb::eback() == &_Mychar) { + + 00036 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0003d ff 15 00 00 00 + 00 call QWORD PTR __imp_?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ + 00043 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0004a 48 83 c1 70 add rcx, 112 ; 00000070H + 0004e 48 3b c1 cmp rax, rcx + 00051 75 37 jne SHORT $LN2@Reset_back + +; 775 : _Mysb::setg(_Set_eback, _Set_eback, _Set_egptr); + + 00053 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005a 4c 8b 88 90 00 + 00 00 mov r9, QWORD PTR [rax+144] + 00061 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00068 4c 8b 80 88 00 + 00 00 mov r8, QWORD PTR [rax+136] + 0006f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00076 48 8b 90 88 00 + 00 00 mov rdx, QWORD PTR [rax+136] + 0007d 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00084 ff 15 00 00 00 + 00 call QWORD PTR __imp_?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z +$LN2@Reset_back: + +; 776 : } +; 777 : } + + 0008a 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00091 5f pop rdi + 00092 5d pop rbp + 00093 c3 ret 0 +?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ENDP ; std::basic_filebuf >::_Reset_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\fstream +; COMDAT ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXAEBV?$codecvt@DDU_Mbstatet@@@2@@Z +_TEXT SEGMENT +this$ = 224 +_Newcvt$ = 232 +?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXAEBV?$codecvt@DDU_Mbstatet@@@2@@Z PROC ; std::basic_filebuf >::_Initcvt, COMDAT + +; 756 : void _Initcvt(const _Cvt& _Newcvt) { // initialize codecvt pointer + +$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 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:__88EC1446_fstream + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 757 : if (_Newcvt.always_noconv()) { + + 0003b 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Newcvt$[rbp] + 00042 ff 15 00 00 00 + 00 call QWORD PTR __imp_?always_noconv@codecvt_base@std@@QEBA_NXZ + 00048 0f b6 c0 movzx eax, al + 0004b 85 c0 test eax, eax + 0004d 74 11 je SHORT $LN2@Initcvt + +; 758 : _Pcvt = nullptr; // nothing to do + + 0004f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00056 48 c7 40 68 00 + 00 00 00 mov QWORD PTR [rax+104], 0 + +; 759 : } else { // set up for nontrivial codecvt facet + + 0005e eb 24 jmp SHORT $LN3@Initcvt +$LN2@Initcvt: + +; 760 : _Pcvt = _STD addressof(_Newcvt); + + 00060 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Newcvt$[rbp] + 00067 e8 00 00 00 00 call ??$addressof@$$CBV?$codecvt@DDU_Mbstatet@@@std@@@std@@YAPEBV?$codecvt@DDU_Mbstatet@@@0@AEBV10@@Z ; std::addressof const > + 0006c 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00073 48 89 41 68 mov QWORD PTR [rcx+104], rax + +; 761 : _Mysb::_Init(); // reset any buffering + + 00077 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0007e ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ +$LN3@Initcvt: + +; 762 : } +; 763 : } + + 00084 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 +?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXAEBV?$codecvt@DDU_Mbstatet@@@2@@Z ENDP ; std::basic_filebuf >::_Initcvt +_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\fstream +; COMDAT ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ +_TEXT SEGMENT +_Codecvt_temp_buf$ = 8 +_Str$ = 40 +_Dest$ = 104 +_Count$5 = 136 +$T6 = 356 +$T7 = 388 +tv146 = 404 +tv131 = 408 +tv83 = 408 +tv132 = 416 +tv81 = 416 +__$ArrayPad$ = 424 +this$ = 464 +?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ PROC ; std::basic_filebuf >::_Endwrite, COMDAT + +; 720 : bool _Endwrite() { // put shift to initial conversion state, as needed + +$LN15: + 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 01 + 00 00 sub rsp, 488 ; 000001e8H + 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00013 48 8b fc mov rdi, rsp + 00016 b9 7a 00 00 00 mov ecx, 122 ; 0000007aH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 08 + 02 00 00 mov rcx, QWORD PTR [rsp+520] + 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 a8 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 721 : if (!_Pcvt || !_Wrotesome) { + + 00047 48 8b 85 d0 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004e 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 + 00053 74 0f je SHORT $LN5@Endwrite + 00055 48 8b 85 d0 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005c 0f b6 40 71 movzx eax, BYTE PTR [rax+113] + 00060 85 c0 test eax, eax + 00062 75 07 jne SHORT $LN4@Endwrite +$LN5@Endwrite: + +; 722 : return true; + + 00064 b0 01 mov al, 1 + 00066 e9 72 01 00 00 jmp $LN1@Endwrite +$LN4@Endwrite: + +; 723 : } +; 724 : +; 725 : // may have to put +; 726 : if (_Traits::eq_int_type(_Traits::eof(), overflow())) { + + 0006b 48 8b 85 d0 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00072 48 8b 00 mov rax, QWORD PTR [rax] + 00075 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 00079 48 89 85 98 01 + 00 00 mov QWORD PTR tv83[rbp], rax + 00080 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00085 89 85 a0 01 00 + 00 mov DWORD PTR tv81[rbp], eax + 0008b 8b 95 a0 01 00 + 00 mov edx, DWORD PTR tv81[rbp] + 00091 48 8b 8d d0 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00098 ff 95 98 01 00 + 00 call QWORD PTR tv83[rbp] + 0009e 89 85 64 01 00 + 00 mov DWORD PTR $T6[rbp], eax + 000a4 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 000a9 89 85 84 01 00 + 00 mov DWORD PTR $T7[rbp], eax + 000af 48 8d 95 64 01 + 00 00 lea rdx, QWORD PTR $T6[rbp] + 000b6 48 8d 8d 84 01 + 00 00 lea rcx, QWORD PTR $T7[rbp] + 000bd e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 000c2 0f b6 c0 movzx eax, al + 000c5 85 c0 test eax, eax + 000c7 74 07 je SHORT $LN6@Endwrite + +; 727 : return false; + + 000c9 32 c0 xor al, al + 000cb e9 0d 01 00 00 jmp $LN1@Endwrite +$LN6@Endwrite: + +; 728 : } +; 729 : +; 730 : constexpr size_t _Codecvt_temp_buf = 32; + + 000d0 48 c7 45 08 20 + 00 00 00 mov QWORD PTR _Codecvt_temp_buf$[rbp], 32 ; 00000020H + +; 731 : char _Str[_Codecvt_temp_buf]; +; 732 : char* _Dest; +; 733 : switch (_Pcvt->unshift(_State, _Str, _Str + _Codecvt_temp_buf, _Dest)) { // test result of homing conversion + + 000d8 48 8b 85 d0 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000df 48 8b 40 68 mov rax, QWORD PTR [rax+104] + 000e3 48 89 85 98 01 + 00 00 mov QWORD PTR tv131[rbp], rax + 000ea 48 8d 45 48 lea rax, QWORD PTR _Str$[rbp+32] + 000ee 48 8b 8d d0 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000f5 48 83 c1 74 add rcx, 116 ; 00000074H + 000f9 48 8d 55 68 lea rdx, QWORD PTR _Dest$[rbp] + 000fd 48 89 54 24 20 mov QWORD PTR [rsp+32], rdx + 00102 4c 8b c8 mov r9, rax + 00105 4c 8d 45 28 lea r8, QWORD PTR _Str$[rbp] + 00109 48 8b d1 mov rdx, rcx + 0010c 48 8b 8d 98 01 + 00 00 mov rcx, QWORD PTR tv131[rbp] + 00113 ff 15 00 00 00 + 00 call QWORD PTR __imp_?unshift@?$codecvt@DDU_Mbstatet@@@std@@QEBAHAEAU_Mbstatet@@PEAD1AEAPEAD@Z + 00119 89 85 a0 01 00 + 00 mov DWORD PTR tv132[rbp], eax + 0011f 83 bd a0 01 00 + 00 00 cmp DWORD PTR tv132[rbp], 0 + 00126 74 1b je SHORT $LN7@Endwrite + 00128 83 bd a0 01 00 + 00 01 cmp DWORD PTR tv132[rbp], 1 + 0012f 74 1d je SHORT $LN8@Endwrite + 00131 83 bd a0 01 00 + 00 03 cmp DWORD PTR tv132[rbp], 3 + 00138 0f 84 8e 00 00 + 00 je $LN10@Endwrite + 0013e e9 98 00 00 00 jmp $LN11@Endwrite +$LN7@Endwrite: + +; 734 : case codecvt_base::ok: +; 735 : _Wrotesome = false; // homed successfully + + 00143 48 8b 85 d0 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0014a c6 40 71 00 mov BYTE PTR [rax+113], 0 +$LN8@Endwrite: + +; 736 : +; 737 : case codecvt_base::partial: // fall through +; 738 : { // put any generated bytes +; 739 : const auto _Count = static_cast(_Dest - _Str); + + 0014e 48 8d 45 28 lea rax, QWORD PTR _Str$[rbp] + 00152 48 8b 4d 68 mov rcx, QWORD PTR _Dest$[rbp] + 00156 48 2b c8 sub rcx, rax + 00159 48 8b c1 mov rax, rcx + 0015c 48 89 85 88 00 + 00 00 mov QWORD PTR _Count$5[rbp], rax + +; 740 : if (0 < _Count && _Count != static_cast(_CSTD fwrite(_Str, 1, _Count, _Myfile))) { + + 00163 48 83 bd 88 00 + 00 00 00 cmp QWORD PTR _Count$5[rbp], 0 + 0016b 76 31 jbe SHORT $LN9@Endwrite + 0016d 48 8b 85 d0 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00174 4c 8b 88 80 00 + 00 00 mov r9, QWORD PTR [rax+128] + 0017b 4c 8b 85 88 00 + 00 00 mov r8, QWORD PTR _Count$5[rbp] + 00182 ba 01 00 00 00 mov edx, 1 + 00187 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 0018b ff 15 00 00 00 + 00 call QWORD PTR __imp_fwrite + 00191 48 39 85 88 00 + 00 00 cmp QWORD PTR _Count$5[rbp], rax + 00198 74 04 je SHORT $LN9@Endwrite + +; 741 : return false; // write failed + + 0019a 32 c0 xor al, al + 0019c eb 3f jmp SHORT $LN1@Endwrite +$LN9@Endwrite: + +; 742 : } +; 743 : +; 744 : return !_Wrotesome; + + 0019e 48 8b 85 d0 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 001a5 0f b6 40 71 movzx eax, BYTE PTR [rax+113] + 001a9 85 c0 test eax, eax + 001ab 75 0c jne SHORT $LN13@Endwrite + 001ad c7 85 94 01 00 + 00 01 00 00 00 mov DWORD PTR tv146[rbp], 1 + 001b7 eb 0a jmp SHORT $LN14@Endwrite +$LN13@Endwrite: + 001b9 c7 85 94 01 00 + 00 00 00 00 00 mov DWORD PTR tv146[rbp], 0 +$LN14@Endwrite: + 001c3 0f b6 85 94 01 + 00 00 movzx eax, BYTE PTR tv146[rbp] + 001ca eb 11 jmp SHORT $LN1@Endwrite +$LN10@Endwrite: + +; 745 : } +; 746 : +; 747 : case codecvt_base::noconv: +; 748 : _Wrotesome = false; // homed successfully + + 001cc 48 8b 85 d0 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 001d3 c6 40 71 00 mov BYTE PTR [rax+113], 0 + +; 749 : return true; // nothing else to do + + 001d7 b0 01 mov al, 1 + 001d9 eb 02 jmp SHORT $LN1@Endwrite +$LN11@Endwrite: + +; 750 : +; 751 : default: +; 752 : return false; // conversion failed + + 001db 32 c0 xor al, al +$LN1@Endwrite: + +; 753 : } +; 754 : } + + 001dd 48 8b f8 mov rdi, rax + 001e0 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 001e4 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ$rtcFrameData + 001eb e8 00 00 00 00 call _RTC_CheckStackVars + 001f0 48 8b c7 mov rax, rdi + 001f3 48 8b 8d a8 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 001fa 48 33 cd xor rcx, rbp + 001fd e8 00 00 00 00 call __security_check_cookie + 00202 48 8d a5 b8 01 + 00 00 lea rsp, QWORD PTR [rbp+440] + 00209 5f pop rdi + 0020a 5d pop rbp + 0020b c3 ret 0 +?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ ENDP ; std::basic_filebuf >::_Endwrite +_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\fstream +; COMDAT ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z +_TEXT SEGMENT +_Pb$6 = 8 +_Pn$7 = 40 +_Nr$8 = 72 +_Nw$9 = 104 +tv66 = 308 +__$ArrayPad$ = 312 +this$ = 352 +_File$ = 360 +_Which$ = 368 +?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z PROC ; std::basic_filebuf >::_Init, COMDAT + +; 693 : void _Init(FILE* _File, _Initfl _Which) { // initialize to C stream _File after {new, open, close} + +$LN6: + 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d + 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 88 01 + 00 00 sub rsp, 392 ; 00000188H + 00018 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] + 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 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 38 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 694 : using _State_type = typename _Traits::state_type; +; 695 : +; 696 : __PURE_APPDOMAIN_GLOBAL static _State_type _Stinit; // initial state +; 697 : +; 698 : _Closef = _Which == _Openfl; + + 00051 83 bd 70 01 00 + 00 01 cmp DWORD PTR _Which$[rbp], 1 + 00058 75 0c jne SHORT $LN4@Init + 0005a c7 85 34 01 00 + 00 01 00 00 00 mov DWORD PTR tv66[rbp], 1 + 00064 eb 0a jmp SHORT $LN5@Init +$LN4@Init: + 00066 c7 85 34 01 00 + 00 00 00 00 00 mov DWORD PTR tv66[rbp], 0 +$LN5@Init: + 00070 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00077 0f b6 8d 34 01 + 00 00 movzx ecx, BYTE PTR tv66[rbp] + 0007e 88 48 7c mov BYTE PTR [rax+124], cl + +; 699 : _Wrotesome = false; + + 00081 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00088 c6 40 71 00 mov BYTE PTR [rax+113], 0 + +; 700 : +; 701 : _Mysb::_Init(); // initialize stream buffer base object + + 0008c 48 8b 8d 60 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00093 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ + +; 702 : +; 703 : if (_File && sizeof(_Elem) == 1) { // point inside C stream with [first, first + count) buffer + + 00099 48 83 bd 68 01 + 00 00 00 cmp QWORD PTR _File$[rbp], 0 + 000a1 74 74 je SHORT $LN2@Init + 000a3 33 c0 xor eax, eax + 000a5 83 f8 01 cmp eax, 1 + 000a8 74 6d je SHORT $LN2@Init + +; 704 : _Elem** _Pb = nullptr; + + 000aa 48 c7 45 08 00 + 00 00 00 mov QWORD PTR _Pb$6[rbp], 0 + +; 705 : _Elem** _Pn = nullptr; + + 000b2 48 c7 45 28 00 + 00 00 00 mov QWORD PTR _Pn$7[rbp], 0 + +; 706 : int* _Nr = nullptr; + + 000ba 48 c7 45 48 00 + 00 00 00 mov QWORD PTR _Nr$8[rbp], 0 + +; 707 : +; 708 : ::_get_stream_buffer_pointers( + + 000c2 4c 8d 4d 48 lea r9, QWORD PTR _Nr$8[rbp] + 000c6 4c 8d 45 28 lea r8, QWORD PTR _Pn$7[rbp] + 000ca 48 8d 55 08 lea rdx, QWORD PTR _Pb$6[rbp] + 000ce 48 8b 8d 68 01 + 00 00 mov rcx, QWORD PTR _File$[rbp] + 000d5 ff 15 00 00 00 + 00 call QWORD PTR __imp__get_stream_buffer_pointers + +; 709 : _File, reinterpret_cast(&_Pb), reinterpret_cast(&_Pn), &_Nr); +; 710 : int* _Nw = _Nr; + + 000db 48 8b 45 48 mov rax, QWORD PTR _Nr$8[rbp] + 000df 48 89 45 68 mov QWORD PTR _Nw$9[rbp], rax + +; 711 : +; 712 : _Mysb::_Init(_Pb, _Pn, _Nr, _Pb, _Pn, _Nw); + + 000e3 48 8b 45 68 mov rax, QWORD PTR _Nw$9[rbp] + 000e7 48 89 44 24 30 mov QWORD PTR [rsp+48], rax + 000ec 48 8b 45 28 mov rax, QWORD PTR _Pn$7[rbp] + 000f0 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 000f5 48 8b 45 08 mov rax, QWORD PTR _Pb$6[rbp] + 000f9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000fe 4c 8b 4d 48 mov r9, QWORD PTR _Nr$8[rbp] + 00102 4c 8b 45 28 mov r8, QWORD PTR _Pn$7[rbp] + 00106 48 8b 55 08 mov rdx, QWORD PTR _Pb$6[rbp] + 0010a 48 8b 8d 60 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00111 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAPEAD0PEAH001@Z +$LN2@Init: + +; 713 : } +; 714 : +; 715 : _Myfile = _File; + + 00117 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0011e 48 8b 8d 68 01 + 00 00 mov rcx, QWORD PTR _File$[rbp] + 00125 48 89 88 80 00 + 00 00 mov QWORD PTR [rax+128], rcx + +; 716 : _State = _Stinit; + + 0012c 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00133 48 8b 0d 00 00 + 00 00 mov rcx, QWORD PTR ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4U_Mbstatet@@A ; `std::basic_filebuf >::_Init'::`2'::_Stinit + 0013a 48 89 48 74 mov QWORD PTR [rax+116], rcx + +; 717 : _Pcvt = nullptr; // pointer to codecvt facet + + 0013e 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00145 48 c7 40 68 00 + 00 00 00 mov QWORD PTR [rax+104], 0 + +; 718 : } + + 0014d 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] + 00151 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z$rtcFrameData + 00158 e8 00 00 00 00 call _RTC_CheckStackVars + 0015d 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00164 48 33 cd xor rcx, rbp + 00167 e8 00 00 00 00 call __security_check_cookie + 0016c 48 8d a5 48 01 + 00 00 lea rsp, QWORD PTR [rbp+328] + 00173 5f pop rdi + 00174 5d pop rbp + 00175 c3 ret 0 +?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z ENDP ; std::basic_filebuf >::_Init +_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\fstream +; COMDAT ?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z +_TEXT SEGMENT +this$ = 224 +_Loc$ = 232 +?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z PROC ; std::basic_filebuf >::imbue, COMDAT + +; 688 : virtual void __CLR_OR_THIS_CALL imbue(const locale& _Loc) override { + +$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 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:__88EC1446_fstream + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 689 : // set locale to argument (capture nontrivial codecvt facet) +; 690 : _Initcvt(_STD use_facet<_Cvt>(_Loc)); + + 0003b 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Loc$[rbp] + 00042 e8 00 00 00 00 call ??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z ; std::use_facet > + 00047 48 8b d0 mov rdx, rax + 0004a 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00051 e8 00 00 00 00 call ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXAEBV?$codecvt@DDU_Mbstatet@@@2@@Z ; std::basic_filebuf >::_Initcvt + +; 691 : } + + 00056 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0005d 5f pop rdi + 0005e 5d pop rbp + 0005f c3 ret 0 +?imbue@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z ENDP ; std::basic_filebuf >::imbue +_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\fstream +; COMDAT ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ +_TEXT SEGMENT +$T1 = 196 +$T2 = 228 +tv80 = 248 +tv78 = 256 +this$ = 304 +?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ PROC ; std::basic_filebuf >::sync, COMDAT + +; 680 : virtual int __CLR_OR_THIS_CALL sync() override { // synchronize C stream with external file + +$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 38 01 + 00 00 sub rsp, 312 ; 00000138H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 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:__88EC1446_fstream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 681 : if (!_Myfile || _Traits::eq_int_type(_Traits::eof(), overflow()) || 0 <= _CSTD fflush(_Myfile)) { + + 00036 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 83 b8 80 00 + 00 00 00 cmp QWORD PTR [rax+128], 0 + 00045 74 76 je SHORT $LN3@sync + 00047 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004e 48 8b 00 mov rax, QWORD PTR [rax] + 00051 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 00055 48 89 85 f8 00 + 00 00 mov QWORD PTR tv80[rbp], rax + 0005c e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00061 89 85 00 01 00 + 00 mov DWORD PTR tv78[rbp], eax + 00067 8b 95 00 01 00 + 00 mov edx, DWORD PTR tv78[rbp] + 0006d 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00074 ff 95 f8 00 00 + 00 call QWORD PTR tv80[rbp] + 0007a 89 85 c4 00 00 + 00 mov DWORD PTR $T1[rbp], eax + 00080 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00085 89 85 e4 00 00 + 00 mov DWORD PTR $T2[rbp], eax + 0008b 48 8d 95 c4 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00092 48 8d 8d e4 00 + 00 00 lea rcx, QWORD PTR $T2[rbp] + 00099 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 0009e 0f b6 c0 movzx eax, al + 000a1 85 c0 test eax, eax + 000a3 75 18 jne SHORT $LN3@sync + 000a5 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000ac 48 8b 88 80 00 + 00 00 mov rcx, QWORD PTR [rax+128] + 000b3 ff 15 00 00 00 + 00 call QWORD PTR __imp_fflush + 000b9 85 c0 test eax, eax + 000bb 7c 04 jl SHORT $LN2@sync +$LN3@sync: + +; 682 : return 0; + + 000bd 33 c0 xor eax, eax + 000bf eb 05 jmp SHORT $LN1@sync +$LN2@sync: + +; 683 : } +; 684 : +; 685 : return -1; + + 000c1 b8 ff ff ff ff mov eax, -1 +$LN1@sync: + +; 686 : } + + 000c6 48 8d a5 18 01 + 00 00 lea rsp, QWORD PTR [rbp+280] + 000cd 5f pop rdi + 000ce 5d pop rbp + 000cf c3 ret 0 +?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ ENDP ; std::basic_filebuf >::sync +_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\fstream +; COMDAT ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z +_TEXT SEGMENT +_Mode$ = 4 +_Size$ = 40 +this$ = 288 +_Buffer$ = 296 +_Count$ = 304 +?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z PROC ; std::basic_filebuf >::setbuf, COMDAT + +; 661 : virtual _Mysb* __CLR_OR_THIS_CALL setbuf(_Elem* _Buffer, streamsize _Count) override { // offer _Buffer to C stream + +$LN7: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 662 : int _Mode; +; 663 : if (!_Buffer && _Count == 0) { + + 00040 48 83 bd 28 01 + 00 00 00 cmp QWORD PTR _Buffer$[rbp], 0 + 00048 75 13 jne SHORT $LN2@setbuf + 0004a 48 83 bd 30 01 + 00 00 00 cmp QWORD PTR _Count$[rbp], 0 + 00052 75 09 jne SHORT $LN2@setbuf + +; 664 : _Mode = _IONBF; + + 00054 c7 45 04 04 00 + 00 00 mov DWORD PTR _Mode$[rbp], 4 + +; 665 : } else { + + 0005b eb 07 jmp SHORT $LN3@setbuf +$LN2@setbuf: + +; 666 : _Mode = _IOFBF; + + 0005d c7 45 04 00 00 + 00 00 mov DWORD PTR _Mode$[rbp], 0 +$LN3@setbuf: + +; 667 : } +; 668 : +; 669 : const size_t _Size = static_cast(_Count) * sizeof(_Elem); + + 00064 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR _Count$[rbp] + 0006b 48 89 45 28 mov QWORD PTR _Size$[rbp], rax + +; 670 : +; 671 : if (!_Myfile || _CSTD setvbuf(_Myfile, reinterpret_cast(_Buffer), _Mode, _Size) != 0) { + + 0006f 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00076 48 83 b8 80 00 + 00 00 00 cmp QWORD PTR [rax+128], 0 + 0007e 74 27 je SHORT $LN5@setbuf + 00080 4c 8b 4d 28 mov r9, QWORD PTR _Size$[rbp] + 00084 44 8b 45 04 mov r8d, DWORD PTR _Mode$[rbp] + 00088 48 8b 95 28 01 + 00 00 mov rdx, QWORD PTR _Buffer$[rbp] + 0008f 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00096 48 8b 88 80 00 + 00 00 mov rcx, QWORD PTR [rax+128] + 0009d ff 15 00 00 00 + 00 call QWORD PTR __imp_setvbuf + 000a3 85 c0 test eax, eax + 000a5 74 04 je SHORT $LN4@setbuf +$LN5@setbuf: + +; 672 : return nullptr; // failed + + 000a7 33 c0 xor eax, eax + 000a9 eb 27 jmp SHORT $LN1@setbuf +$LN4@setbuf: + +; 673 : } +; 674 : +; 675 : // new buffer, reinitialize pointers +; 676 : _Init(_Myfile, _Openfl); + + 000ab 41 b8 01 00 00 + 00 mov r8d, 1 + 000b1 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000b8 48 8b 90 80 00 + 00 00 mov rdx, QWORD PTR [rax+128] + 000bf 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c6 e8 00 00 00 00 call ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z ; std::basic_filebuf >::_Init + +; 677 : return this; + + 000cb 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] +$LN1@setbuf: + +; 678 : } + + 000d2 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000d9 5f pop rdi + 000da 5d pop rbp + 000db c3 ret 0 +?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z ENDP ; std::basic_filebuf >::setbuf +_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\fstream +; COMDAT ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z +_TEXT SEGMENT +_Off$ = 8 +$T4 = 228 +__$ArrayPad$ = 248 +this$ = 288 +__$ReturnUdt$ = 296 +_Pos$ = 304 +__formal$ = 312 +?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z PROC ; std::basic_filebuf >::seekpos, COMDAT + +; 648 : pos_type _Pos, ios_base::openmode = ios_base::in | ios_base::out) override { + +$LN5: + 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d + 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 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00040 48 33 c5 xor rax, rbp + 00043 48 89 85 f8 00 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0004a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00051 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 649 : // change position to _Pos +; 650 : off_type _Off = static_cast(_Pos); + + 00056 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR _Pos$[rbp] + 0005d e8 00 00 00 00 call ??B?$fpos@U_Mbstatet@@@std@@QEBA_JXZ ; std::fpos<_Mbstatet>::operator __int64 + 00062 48 89 45 08 mov QWORD PTR _Off$[rbp], rax + +; 651 : +; 652 : if (!_Myfile || !_Endwrite() || _CSTD fsetpos(_Myfile, &_Off) != 0) { + + 00066 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006d 48 83 b8 80 00 + 00 00 00 cmp QWORD PTR [rax+128], 0 + 00075 74 2f je SHORT $LN3@seekpos + 00077 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0007e e8 00 00 00 00 call ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ ; std::basic_filebuf >::_Endwrite + 00083 0f b6 c0 movzx eax, al + 00086 85 c0 test eax, eax + 00088 74 1c je SHORT $LN3@seekpos + 0008a 48 8d 55 08 lea rdx, QWORD PTR _Off$[rbp] + 0008e 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00095 48 8b 88 80 00 + 00 00 mov rcx, QWORD PTR [rax+128] + 0009c ff 15 00 00 00 + 00 call QWORD PTR __imp_fsetpos + 000a2 85 c0 test eax, eax + 000a4 74 1c je SHORT $LN2@seekpos +$LN3@seekpos: + +; 653 : return pos_type(-1); // report failure + + 000a6 48 c7 c2 ff ff + ff ff mov rdx, -1 + 000ad 48 8b 8d 28 01 + 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] + 000b4 e8 00 00 00 00 call ??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z ; std::fpos<_Mbstatet>::fpos<_Mbstatet> + 000b9 48 8b 85 28 01 + 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] + 000c0 eb 4f jmp SHORT $LN1@seekpos +$LN2@seekpos: + +; 654 : } +; 655 : +; 656 : _State = _Pos.state(); + + 000c2 48 8d 95 e4 00 + 00 00 lea rdx, QWORD PTR $T4[rbp] + 000c9 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR _Pos$[rbp] + 000d0 e8 00 00 00 00 call ?state@?$fpos@U_Mbstatet@@@std@@QEBA?AU_Mbstatet@@XZ ; std::fpos<_Mbstatet>::state + 000d5 48 8b 00 mov rax, QWORD PTR [rax] + 000d8 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000df 48 89 41 74 mov QWORD PTR [rcx+116], rax + +; 657 : _Reset_back(); // revert from _Mychar buffer, discarding any putback + + 000e3 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ea e8 00 00 00 00 call ?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ; std::basic_filebuf >::_Reset_back + +; 658 : return pos_type(_State, _Off); // return new position + + 000ef 4c 8b 45 08 mov r8, QWORD PTR _Off$[rbp] + 000f3 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000fa 48 8b 50 74 mov rdx, QWORD PTR [rax+116] + 000fe 48 8b 8d 28 01 + 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] + 00105 e8 00 00 00 00 call ??0?$fpos@U_Mbstatet@@@std@@QEAA@U_Mbstatet@@_J@Z ; std::fpos<_Mbstatet>::fpos<_Mbstatet> + 0010a 48 8b 85 28 01 + 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] +$LN1@seekpos: + +; 659 : } + + 00111 48 8b f8 mov rdi, rax + 00114 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00118 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z$rtcFrameData + 0011f e8 00 00 00 00 call _RTC_CheckStackVars + 00124 48 8b c7 mov rax, rdi + 00127 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 0012e 48 33 cd xor rcx, rbp + 00131 e8 00 00 00 00 call __security_check_cookie + 00136 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 0013d 5f pop rdi + 0013e 5d pop rbp + 0013f c3 ret 0 +?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@V32@H@Z ENDP ; std::basic_filebuf >::seekpos +_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\fstream +; COMDAT ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z +_TEXT SEGMENT +_Fileposition$ = 8 +__$ArrayPad$ = 216 +this$ = 256 +__$ReturnUdt$ = 264 +_Off$ = 272 +_Way$ = 280 +__formal$ = 288 +?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z PROC ; std::basic_filebuf >::seekoff, COMDAT + +; 628 : ios_base::openmode = ios_base::in | ios_base::out) override { // change position by _Off + +$LN8: + 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d + 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 08 01 + 00 00 sub rsp, 264 ; 00000108H + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 42 00 00 00 mov ecx, 66 ; 00000042H + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 28 + 01 00 00 mov rcx, QWORD PTR [rsp+296] + 00039 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00040 48 33 c5 xor rax, rbp + 00043 48 89 85 d8 00 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0004a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00051 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 629 : fpos_t _Fileposition; +; 630 : +; 631 : if (_Mysb::gptr() == &_Mychar // something putback +; 632 : && _Way == ios_base::cur // a relative seek +; 633 : && !_Pcvt) { // not converting + + 00056 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005d ff 15 00 00 00 + 00 call QWORD PTR __imp_?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ + 00063 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0006a 48 83 c1 70 add rcx, 112 ; 00000070H + 0006e 48 3b c1 cmp rax, rcx + 00071 75 28 jne SHORT $LN2@seekoff + 00073 83 bd 18 01 00 + 00 01 cmp DWORD PTR _Way$[rbp], 1 + 0007a 75 1f jne SHORT $LN2@seekoff + 0007c 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00083 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 + 00088 75 11 jne SHORT $LN2@seekoff + +; 634 : _Off -= static_cast(sizeof(_Elem)); // back up over _Elem bytes + + 0008a 48 8b 85 10 01 + 00 00 mov rax, QWORD PTR _Off$[rbp] + 00091 48 ff c8 dec rax + 00094 48 89 85 10 01 + 00 00 mov QWORD PTR _Off$[rbp], rax +$LN2@seekoff: + +; 635 : } +; 636 : +; 637 : if (!_Myfile || !_Endwrite() +; 638 : || ((_Off != 0 || _Way != ios_base::cur) && _CSTD _fseeki64(_Myfile, _Off, _Way) != 0) +; 639 : || _CSTD fgetpos(_Myfile, &_Fileposition) != 0) { + + 0009b 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000a2 48 83 b8 80 00 + 00 00 00 cmp QWORD PTR [rax+128], 0 + 000aa 74 68 je SHORT $LN4@seekoff + 000ac 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000b3 e8 00 00 00 00 call ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ ; std::basic_filebuf >::_Endwrite + 000b8 0f b6 c0 movzx eax, al + 000bb 85 c0 test eax, eax + 000bd 74 55 je SHORT $LN4@seekoff + 000bf 48 83 bd 10 01 + 00 00 00 cmp QWORD PTR _Off$[rbp], 0 + 000c7 75 09 jne SHORT $LN6@seekoff + 000c9 83 bd 18 01 00 + 00 01 cmp DWORD PTR _Way$[rbp], 1 + 000d0 74 26 je SHORT $LN5@seekoff +$LN6@seekoff: + 000d2 44 8b 85 18 01 + 00 00 mov r8d, DWORD PTR _Way$[rbp] + 000d9 48 8b 95 10 01 + 00 00 mov rdx, QWORD PTR _Off$[rbp] + 000e0 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000e7 48 8b 88 80 00 + 00 00 mov rcx, QWORD PTR [rax+128] + 000ee ff 15 00 00 00 + 00 call QWORD PTR __imp__fseeki64 + 000f4 85 c0 test eax, eax + 000f6 75 1c jne SHORT $LN4@seekoff +$LN5@seekoff: + 000f8 48 8d 55 08 lea rdx, QWORD PTR _Fileposition$[rbp] + 000fc 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00103 48 8b 88 80 00 + 00 00 mov rcx, QWORD PTR [rax+128] + 0010a ff 15 00 00 00 + 00 call QWORD PTR __imp_fgetpos + 00110 85 c0 test eax, eax + 00112 74 1c je SHORT $LN3@seekoff +$LN4@seekoff: + +; 640 : return pos_type(-1); // report failure + + 00114 48 c7 c2 ff ff + ff ff mov rdx, -1 + 0011b 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] + 00122 e8 00 00 00 00 call ??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z ; std::fpos<_Mbstatet>::fpos<_Mbstatet> + 00127 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] + 0012e eb 2e jmp SHORT $LN1@seekoff +$LN3@seekoff: + +; 641 : } +; 642 : +; 643 : _Reset_back(); // revert from _Mychar buffer, discarding any putback + + 00130 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00137 e8 00 00 00 00 call ?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ; std::basic_filebuf >::_Reset_back + +; 644 : return pos_type(_State, _Fileposition); // return new position + + 0013c 4c 8b 45 08 mov r8, QWORD PTR _Fileposition$[rbp] + 00140 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00147 48 8b 50 74 mov rdx, QWORD PTR [rax+116] + 0014b 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] + 00152 e8 00 00 00 00 call ??0?$fpos@U_Mbstatet@@@std@@QEAA@U_Mbstatet@@_J@Z ; std::fpos<_Mbstatet>::fpos<_Mbstatet> + 00157 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] +$LN1@seekoff: + +; 645 : } + + 0015e 48 8b f8 mov rdi, rax + 00161 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00165 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z$rtcFrameData + 0016c e8 00 00 00 00 call _RTC_CheckStackVars + 00171 48 8b c7 mov rax, rdi + 00174 48 8b 8d d8 00 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 0017b 48 33 cd xor rcx, rbp + 0017e e8 00 00 00 00 call __security_check_cookie + 00183 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 0018a 5f pop rdi + 0018b 5d pop rbp + 0018c c3 ret 0 +?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@U_Mbstatet@@@2@_JHH@Z ENDP ; std::basic_filebuf >::seekoff +_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\fstream +; COMDAT ?xsputn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z +_TEXT SEGMENT +_Start_count$1 = 8 +_Size$2 = 40 +this$ = 288 +_Ptr$ = 296 +_Count$ = 304 +?xsputn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z PROC ; std::basic_filebuf >::xsputn, COMDAT + +; 596 : virtual streamsize __CLR_OR_THIS_CALL xsputn(const _Elem* _Ptr, streamsize _Count) override { + +$LN7: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 28 01 + 00 00 sub rsp, 296 ; 00000128H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 00034 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 597 : // put _Count characters to stream +; 598 : if _CONSTEXPR_IF (sizeof(_Elem) == 1) { +; 599 : if (_Pcvt) { // if we need a nontrivial codecvt transform, do the default expensive thing + + 00040 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00047 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 + 0004c 74 20 je SHORT $LN2@xsputn + +; 600 : return _Mysb::xsputn(_Ptr, _Count); + + 0004e 4c 8b 85 30 01 + 00 00 mov r8, QWORD PTR _Count$[rbp] + 00055 48 8b 95 28 01 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 0005c 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00063 ff 15 00 00 00 + 00 call QWORD PTR __imp_?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z + 00069 e9 0c 01 00 00 jmp $LN1@xsputn +$LN2@xsputn: + +; 601 : } +; 602 : +; 603 : const streamsize _Start_count = _Count; + + 0006e 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR _Count$[rbp] + 00075 48 89 45 08 mov QWORD PTR _Start_count$1[rbp], rax + +; 604 : streamsize _Size = _Mysb::_Pnavail(); + + 00079 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00080 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ + 00086 48 89 45 28 mov QWORD PTR _Size$2[rbp], rax + +; 605 : if (0 < _Count && 0 < _Size) { // copy to write buffer + + 0008a 48 83 bd 30 01 + 00 00 00 cmp QWORD PTR _Count$[rbp], 0 + 00092 7e 7f jle SHORT $LN3@xsputn + 00094 48 83 7d 28 00 cmp QWORD PTR _Size$2[rbp], 0 + 00099 7e 78 jle SHORT $LN3@xsputn + +; 606 : if (_Count < _Size) { + + 0009b 48 8b 45 28 mov rax, QWORD PTR _Size$2[rbp] + 0009f 48 39 85 30 01 + 00 00 cmp QWORD PTR _Count$[rbp], rax + 000a6 7d 0b jge SHORT $LN4@xsputn + +; 607 : _Size = _Count; + + 000a8 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR _Count$[rbp] + 000af 48 89 45 28 mov QWORD PTR _Size$2[rbp], rax +$LN4@xsputn: + +; 608 : } +; 609 : +; 610 : _Traits::copy(_Mysb::pptr(), _Ptr, static_cast(_Size)); + + 000b3 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ba ff 15 00 00 00 + 00 call QWORD PTR __imp_?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ + 000c0 4c 8b 45 28 mov r8, QWORD PTR _Size$2[rbp] + 000c4 48 8b 95 28 01 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 000cb 48 8b c8 mov rcx, rax + 000ce e8 00 00 00 00 call ?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z ; std::_Narrow_char_traits::copy + +; 611 : _Ptr += _Size; + + 000d3 48 8b 45 28 mov rax, QWORD PTR _Size$2[rbp] + 000d7 48 8b 8d 28 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 000de 48 03 c8 add rcx, rax + 000e1 48 8b c1 mov rax, rcx + 000e4 48 89 85 28 01 + 00 00 mov QWORD PTR _Ptr$[rbp], rax + +; 612 : _Count -= _Size; + + 000eb 48 8b 45 28 mov rax, QWORD PTR _Size$2[rbp] + 000ef 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR _Count$[rbp] + 000f6 48 2b c8 sub rcx, rax + 000f9 48 8b c1 mov rax, rcx + 000fc 48 89 85 30 01 + 00 00 mov QWORD PTR _Count$[rbp], rax + +; 613 : _Mysb::pbump(static_cast(_Size)); + + 00103 8b 55 28 mov edx, DWORD PTR _Size$2[rbp] + 00106 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0010d ff 15 00 00 00 + 00 call QWORD PTR __imp_?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z +$LN3@xsputn: + +; 614 : } +; 615 : +; 616 : if (0 < _Count && _Myfile) { // open C stream, attempt write + + 00113 48 83 bd 30 01 + 00 00 00 cmp QWORD PTR _Count$[rbp], 0 + 0011b 7e 4c jle SHORT $LN5@xsputn + 0011d 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00124 48 83 b8 80 00 + 00 00 00 cmp QWORD PTR [rax+128], 0 + 0012c 74 3b je SHORT $LN5@xsputn + +; 617 : _Count -= _CSTD fwrite(_Ptr, sizeof(_Elem), static_cast(_Count), _Myfile); + + 0012e 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00135 4c 8b 88 80 00 + 00 00 mov r9, QWORD PTR [rax+128] + 0013c 4c 8b 85 30 01 + 00 00 mov r8, QWORD PTR _Count$[rbp] + 00143 ba 01 00 00 00 mov edx, 1 + 00148 48 8b 8d 28 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0014f ff 15 00 00 00 + 00 call QWORD PTR __imp_fwrite + 00155 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR _Count$[rbp] + 0015c 48 2b c8 sub rcx, rax + 0015f 48 8b c1 mov rax, rcx + 00162 48 89 85 30 01 + 00 00 mov QWORD PTR _Count$[rbp], rax +$LN5@xsputn: + +; 618 : } +; 619 : +; 620 : return _Start_count - _Count; + + 00169 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR _Count$[rbp] + 00170 48 8b 4d 08 mov rcx, QWORD PTR _Start_count$1[rbp] + 00174 48 2b c8 sub rcx, rax + 00177 48 8b c1 mov rax, rcx +$LN1@xsputn: + +; 621 : } else { // non-chars always get element-by-element processing +; 622 : return _Mysb::xsputn(_Ptr, _Count); +; 623 : } +; 624 : } + + 0017a 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 00181 5f pop rdi + 00182 5d pop rbp + 00183 c3 ret 0 +?xsputn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z ENDP ; std::basic_filebuf >::xsputn +_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\fstream +; COMDAT ?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z +_TEXT SEGMENT +_Count_s$5 = 8 +_Start_count$6 = 40 +_Available$7 = 72 +_Read_size$8 = 104 +_Read_size$9 = 136 +_Actual_read$10 = 168 +tv158 = 376 +tv156 = 384 +__$ArrayPad$ = 392 +this$ = 432 +_Ptr$ = 440 +_Count$ = 448 +?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z PROC ; std::basic_filebuf >::xsgetn, COMDAT + +; 548 : virtual streamsize __CLR_OR_THIS_CALL xsgetn(_Elem* _Ptr, streamsize _Count) override { + +$LN11: + 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 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 + 01 00 00 mov rcx, QWORD PTR [rsp+472] + 00034 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 88 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 549 : // get _Count characters from stream +; 550 : if _CONSTEXPR_IF (sizeof(_Elem) == 1) { +; 551 : if (_Count <= 0) { + + 00051 48 83 bd c0 01 + 00 00 00 cmp QWORD PTR _Count$[rbp], 0 + 00059 7f 07 jg SHORT $LN4@xsgetn + +; 552 : return 0; + + 0005b 33 c0 xor eax, eax + 0005d e9 e2 01 00 00 jmp $LN1@xsgetn +$LN4@xsgetn: + +; 553 : } +; 554 : +; 555 : if (_Pcvt) { // if we need a nontrivial codecvt transform, do the default expensive thing + + 00062 48 8b 85 b0 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00069 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 + 0006e 74 20 je SHORT $LN5@xsgetn + +; 556 : return _Mysb::xsgetn(_Ptr, _Count); + + 00070 4c 8b 85 c0 01 + 00 00 mov r8, QWORD PTR _Count$[rbp] + 00077 48 8b 95 b8 01 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 0007e 48 8b 8d b0 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00085 ff 15 00 00 00 + 00 call QWORD PTR __imp_?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z + 0008b e9 b4 01 00 00 jmp $LN1@xsgetn +$LN5@xsgetn: + +; 557 : } +; 558 : +; 559 : // assuming this is OK because _Ptr + _Count must be valid +; 560 : auto _Count_s = static_cast(_Count); + + 00090 48 8b 85 c0 01 + 00 00 mov rax, QWORD PTR _Count$[rbp] + 00097 48 89 45 08 mov QWORD PTR _Count_s$5[rbp], rax + +; 561 : const auto _Start_count = _Count; + + 0009b 48 8b 85 c0 01 + 00 00 mov rax, QWORD PTR _Count$[rbp] + 000a2 48 89 45 28 mov QWORD PTR _Start_count$6[rbp], rax + +; 562 : const auto _Available = static_cast(_Mysb::_Gnavail()); + + 000a6 48 8b 8d b0 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ + 000b3 48 89 45 48 mov QWORD PTR _Available$7[rbp], rax + +; 563 : if (0 < _Available) { // copy from get area + + 000b7 48 83 7d 48 00 cmp QWORD PTR _Available$7[rbp], 0 + 000bc 76 6e jbe SHORT $LN6@xsgetn + +; 564 : const auto _Read_size = (_STD min)(_Count_s, _Available); + + 000be 48 8d 55 48 lea rdx, QWORD PTR _Available$7[rbp] + 000c2 48 8d 4d 08 lea rcx, QWORD PTR _Count_s$5[rbp] + 000c6 e8 00 00 00 00 call ??$min@_K@std@@YAAEB_KAEB_K0@Z ; std::min + 000cb 48 8b 00 mov rax, QWORD PTR [rax] + 000ce 48 89 45 68 mov QWORD PTR _Read_size$8[rbp], rax + +; 565 : _Traits::copy(_Ptr, _Mysb::gptr(), _Read_size); + + 000d2 48 8b 8d b0 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000d9 ff 15 00 00 00 + 00 call QWORD PTR __imp_?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ + 000df 4c 8b 45 68 mov r8, QWORD PTR _Read_size$8[rbp] + 000e3 48 8b d0 mov rdx, rax + 000e6 48 8b 8d b8 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 000ed e8 00 00 00 00 call ?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z ; std::_Narrow_char_traits::copy + +; 566 : _Ptr += _Read_size; + + 000f2 48 8b 45 68 mov rax, QWORD PTR _Read_size$8[rbp] + 000f6 48 8b 8d b8 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 000fd 48 03 c8 add rcx, rax + 00100 48 8b c1 mov rax, rcx + 00103 48 89 85 b8 01 + 00 00 mov QWORD PTR _Ptr$[rbp], rax + +; 567 : _Count_s -= _Read_size; + + 0010a 48 8b 45 68 mov rax, QWORD PTR _Read_size$8[rbp] + 0010e 48 8b 4d 08 mov rcx, QWORD PTR _Count_s$5[rbp] + 00112 48 2b c8 sub rcx, rax + 00115 48 8b c1 mov rax, rcx + 00118 48 89 45 08 mov QWORD PTR _Count_s$5[rbp], rax + +; 568 : _Mysb::gbump(static_cast(_Read_size)); + + 0011c 8b 55 68 mov edx, DWORD PTR _Read_size$8[rbp] + 0011f 48 8b 8d b0 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00126 ff 15 00 00 00 + 00 call QWORD PTR __imp_?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z +$LN6@xsgetn: + +; 569 : } +; 570 : +; 571 : if (_Myfile) { // open C stream, attempt read + + 0012c 48 8b 85 b0 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00133 48 83 b8 80 00 + 00 00 00 cmp QWORD PTR [rax+128], 0 + 0013b 0f 84 f5 00 00 + 00 je $LN7@xsgetn + +; 572 : _Reset_back(); // revert from _Mychar buffer + + 00141 48 8b 8d b0 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00148 e8 00 00 00 00 call ?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ; std::basic_filebuf >::_Reset_back + +; 573 : // process in 4k - 1 chunks to avoid tripping over fread's clobber-the-end behavior when +; 574 : // doing \r\n -> \n translation +; 575 : constexpr size_t _Read_size = 4095; // _INTERNAL_BUFSIZ - 1 + + 0014d 48 c7 85 88 00 + 00 00 ff 0f 00 + 00 mov QWORD PTR _Read_size$9[rbp], 4095 ; 00000fffH +$LN2@xsgetn: + +; 576 : while (_Read_size < _Count_s) { + + 00158 48 81 7d 08 ff + 0f 00 00 cmp QWORD PTR _Count_s$5[rbp], 4095 ; 00000fffH + 00160 76 7f jbe SHORT $LN3@xsgetn + +; 577 : const auto _Actual_read = _CSTD fread(_Ptr, sizeof(_Elem), _Read_size, _Myfile); + + 00162 48 8b 85 b0 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00169 4c 8b 88 80 00 + 00 00 mov r9, QWORD PTR [rax+128] + 00170 41 b8 ff 0f 00 + 00 mov r8d, 4095 ; 00000fffH + 00176 ba 01 00 00 00 mov edx, 1 + 0017b 48 8b 8d b8 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00182 ff 15 00 00 00 + 00 call QWORD PTR __imp_fread + 00188 48 89 85 a8 00 + 00 00 mov QWORD PTR _Actual_read$10[rbp], rax + +; 578 : _Ptr += _Actual_read; + + 0018f 48 8b 85 a8 00 + 00 00 mov rax, QWORD PTR _Actual_read$10[rbp] + 00196 48 8b 8d b8 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0019d 48 03 c8 add rcx, rax + 001a0 48 8b c1 mov rax, rcx + 001a3 48 89 85 b8 01 + 00 00 mov QWORD PTR _Ptr$[rbp], rax + +; 579 : _Count_s -= _Actual_read; + + 001aa 48 8b 85 a8 00 + 00 00 mov rax, QWORD PTR _Actual_read$10[rbp] + 001b1 48 8b 4d 08 mov rcx, QWORD PTR _Count_s$5[rbp] + 001b5 48 2b c8 sub rcx, rax + 001b8 48 8b c1 mov rax, rcx + 001bb 48 89 45 08 mov QWORD PTR _Count_s$5[rbp], rax + +; 580 : if (_Actual_read != _Read_size) { + + 001bf 48 81 bd a8 00 + 00 00 ff 0f 00 + 00 cmp QWORD PTR _Actual_read$10[rbp], 4095 ; 00000fffH + 001ca 74 10 je SHORT $LN8@xsgetn + +; 581 : return static_cast(_Start_count - _Count_s); + + 001cc 48 8b 45 08 mov rax, QWORD PTR _Count_s$5[rbp] + 001d0 48 8b 4d 28 mov rcx, QWORD PTR _Start_count$6[rbp] + 001d4 48 2b c8 sub rcx, rax + 001d7 48 8b c1 mov rax, rcx + 001da eb 68 jmp SHORT $LN1@xsgetn +$LN8@xsgetn: + +; 582 : } +; 583 : } + + 001dc e9 77 ff ff ff jmp $LN2@xsgetn +$LN3@xsgetn: + +; 584 : +; 585 : if (0 < _Count_s) { + + 001e1 48 83 7d 08 00 cmp QWORD PTR _Count_s$5[rbp], 0 + 001e6 76 4e jbe SHORT $LN9@xsgetn + +; 586 : _Count_s -= _CSTD fread(_Ptr, sizeof(_Elem), _Count_s, _Myfile); + + 001e8 48 8b 85 b0 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 001ef 4c 8b 88 80 00 + 00 00 mov r9, QWORD PTR [rax+128] + 001f6 4c 8b 45 08 mov r8, QWORD PTR _Count_s$5[rbp] + 001fa ba 01 00 00 00 mov edx, 1 + 001ff 48 8b 8d b8 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 00206 ff 15 00 00 00 + 00 call QWORD PTR __imp_fread + 0020c 48 89 85 78 01 + 00 00 mov QWORD PTR tv158[rbp], rax + 00213 48 8b 45 08 mov rax, QWORD PTR _Count_s$5[rbp] + 00217 48 89 85 80 01 + 00 00 mov QWORD PTR tv156[rbp], rax + 0021e 48 8b 85 78 01 + 00 00 mov rax, QWORD PTR tv158[rbp] + 00225 48 8b 8d 80 01 + 00 00 mov rcx, QWORD PTR tv156[rbp] + 0022c 48 2b c8 sub rcx, rax + 0022f 48 8b c1 mov rax, rcx + 00232 48 89 45 08 mov QWORD PTR _Count_s$5[rbp], rax +$LN9@xsgetn: +$LN7@xsgetn: + +; 587 : } +; 588 : } +; 589 : +; 590 : return static_cast(_Start_count - _Count_s); + + 00236 48 8b 45 08 mov rax, QWORD PTR _Count_s$5[rbp] + 0023a 48 8b 4d 28 mov rcx, QWORD PTR _Start_count$6[rbp] + 0023e 48 2b c8 sub rcx, rax + 00241 48 8b c1 mov rax, rcx +$LN1@xsgetn: + +; 591 : } else { // non-chars always get element-by-element processing +; 592 : return _Mysb::xsgetn(_Ptr, _Count); +; 593 : } +; 594 : } + + 00244 48 8b f8 mov rdi, rax + 00247 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0024b 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z$rtcFrameData + 00252 e8 00 00 00 00 call _RTC_CheckStackVars + 00257 48 8b c7 mov rax, rdi + 0025a 48 8b 8d 88 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00261 48 33 cd xor rcx, rbp + 00264 e8 00 00 00 00 call __security_check_cookie + 00269 48 8d a5 98 01 + 00 00 lea rsp, QWORD PTR [rbp+408] + 00270 5f pop rdi + 00271 5d pop rbp + 00272 c3 ret 0 +?xsgetn@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z ENDP ; std::basic_filebuf >::xsgetn +_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\fstream +; COMDAT ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ +_TEXT SEGMENT +_Ch$8 = 4 +_Str$ = 40 +_Src$9 = 104 +_Meta$10 = 132 +_Ch$11 = 164 +_Dest$12 = 200 +_Nleft$13 = 232 +$T14 = 452 +$T15 = 484 +$T16 = 516 +$T17 = 548 +tv139 = 564 +tv178 = 568 +tv174 = 568 +tv76 = 568 +tv159 = 576 +tv172 = 584 +tv170 = 592 +tv175 = 600 +__$ArrayPad$ = 608 +this$ = 656 +?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ PROC ; std::basic_filebuf >::uflow, COMDAT + +; 490 : virtual int_type __CLR_OR_THIS_CALL uflow() override { // get an element from stream, point past it + +$LN21: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec b8 02 + 00 00 sub rsp, 696 ; 000002b8H + 0000e 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] + 00013 48 8b fc mov rdi, rsp + 00016 b9 ae 00 00 00 mov ecx, 174 ; 000000aeH + 0001b b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00020 f3 ab rep stosd + 00022 48 8b 8c 24 d8 + 02 00 00 mov rcx, QWORD PTR [rsp+728] + 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 60 02 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 491 : if (_Mysb::gptr() && _Mysb::gptr() < _Mysb::egptr()) { + + 00047 48 8b 8d 90 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0004e ff 15 00 00 00 + 00 call QWORD PTR __imp_?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ + 00054 48 85 c0 test rax, rax + 00057 74 47 je SHORT $LN9@uflow + 00059 48 8b 8d 90 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00060 ff 15 00 00 00 + 00 call QWORD PTR __imp_?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ + 00066 48 89 85 38 02 + 00 00 mov QWORD PTR tv76[rbp], rax + 0006d 48 8b 8d 90 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00074 ff 15 00 00 00 + 00 call QWORD PTR __imp_?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ + 0007a 48 8b 8d 38 02 + 00 00 mov rcx, QWORD PTR tv76[rbp] + 00081 48 3b c8 cmp rcx, rax + 00084 73 1a jae SHORT $LN9@uflow + +; 492 : return _Traits::to_int_type(*_Mysb::_Gninc()); // return buffered + + 00086 48 8b 8d 90 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ + 00093 48 8b c8 mov rcx, rax + 00096 e8 00 00 00 00 call ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ; std::_Narrow_char_traits::to_int_type + 0009b e9 c9 02 00 00 jmp $LN1@uflow +$LN9@uflow: + +; 493 : } +; 494 : +; 495 : if (!_Myfile) { + + 000a0 48 8b 85 90 02 + 00 00 mov rax, QWORD PTR this$[rbp] + 000a7 48 83 b8 80 00 + 00 00 00 cmp QWORD PTR [rax+128], 0 + 000af 75 0a jne SHORT $LN10@uflow + +; 496 : return _Traits::eof(); // no open C stream, fail + + 000b1 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 000b6 e9 ae 02 00 00 jmp $LN1@uflow +$LN10@uflow: + +; 497 : } +; 498 : +; 499 : _Reset_back(); // revert from _Mychar buffer + + 000bb 48 8b 8d 90 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c2 e8 00 00 00 00 call ?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ; std::basic_filebuf >::_Reset_back + +; 500 : if (!_Pcvt) { // no codecvt facet, just get it + + 000c7 48 8b 85 90 02 + 00 00 mov rax, QWORD PTR this$[rbp] + 000ce 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 + 000d3 75 45 jne SHORT $LN11@uflow + +; 501 : _Elem _Ch; +; 502 : return _Fgetc(_Ch, _Myfile) ? _Traits::to_int_type(_Ch) : _Traits::eof(); + + 000d5 48 8b 85 90 02 + 00 00 mov rax, QWORD PTR this$[rbp] + 000dc 48 8b 90 80 00 + 00 00 mov rdx, QWORD PTR [rax+128] + 000e3 48 8d 4d 04 lea rcx, QWORD PTR _Ch$8[rbp] + 000e7 e8 00 00 00 00 call ??$_Fgetc@D@std@@YA_NAEADPEAU_iobuf@@@Z ; std::_Fgetc + 000ec 0f b6 c0 movzx eax, al + 000ef 85 c0 test eax, eax + 000f1 74 11 je SHORT $LN18@uflow + 000f3 48 8d 4d 04 lea rcx, QWORD PTR _Ch$8[rbp] + 000f7 e8 00 00 00 00 call ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ; std::_Narrow_char_traits::to_int_type + 000fc 89 85 34 02 00 + 00 mov DWORD PTR tv139[rbp], eax + 00102 eb 0b jmp SHORT $LN19@uflow +$LN18@uflow: + 00104 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00109 89 85 34 02 00 + 00 mov DWORD PTR tv139[rbp], eax +$LN19@uflow: + 0010f 8b 85 34 02 00 + 00 mov eax, DWORD PTR tv139[rbp] + 00115 e9 4f 02 00 00 jmp $LN1@uflow +$LN11@uflow: + +; 503 : } +; 504 : +; 505 : // build string until codecvt succeeds +; 506 : string _Str; + + 0011a 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 0011e e8 00 00 00 00 call ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ; std::basic_string,std::allocator >::basic_string,std::allocator > + 00123 90 npad 1 +$LN2@uflow: + +; 507 : +; 508 : for (;;) { // get using codecvt facet +; 509 : const char* _Src; +; 510 : int _Meta = _CSTD fgetc(_Myfile); + + 00124 48 8b 85 90 02 + 00 00 mov rax, QWORD PTR this$[rbp] + 0012b 48 8b 88 80 00 + 00 00 mov rcx, QWORD PTR [rax+128] + 00132 ff 15 00 00 00 + 00 call QWORD PTR __imp_fgetc + 00138 89 85 84 00 00 + 00 mov DWORD PTR _Meta$10[rbp], eax + +; 511 : +; 512 : if (_Meta == EOF) { + + 0013e 83 bd 84 00 00 + 00 ff cmp DWORD PTR _Meta$10[rbp], -1 + 00145 75 1f jne SHORT $LN12@uflow + +; 513 : return _Traits::eof(); // partial char? + + 00147 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 0014c 89 85 c4 01 00 + 00 mov DWORD PTR $T14[rbp], eax + 00152 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 00156 e8 00 00 00 00 call ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ; std::basic_string,std::allocator >::~basic_string,std::allocator > + 0015b 8b 85 c4 01 00 + 00 mov eax, DWORD PTR $T14[rbp] + 00161 e9 03 02 00 00 jmp $LN1@uflow +$LN12@uflow: + +; 514 : } +; 515 : +; 516 : _Str.push_back(static_cast(_Meta)); // append byte and convert + + 00166 0f b6 95 84 00 + 00 00 movzx edx, BYTE PTR _Meta$10[rbp] + 0016d 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 00171 e8 00 00 00 00 call ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z ; std::basic_string,std::allocator >::push_back + +; 517 : +; 518 : _Elem _Ch; +; 519 : _Elem* _Dest; +; 520 : switch (_Pcvt->in(_State, _Str.data(), _Str.data() + _Str.size(), _Src, &_Ch, &_Ch + 1, + + 00176 48 8b 85 90 02 + 00 00 mov rax, QWORD PTR this$[rbp] + 0017d 48 8b 40 68 mov rax, QWORD PTR [rax+104] + 00181 48 89 85 38 02 + 00 00 mov QWORD PTR tv174[rbp], rax + 00188 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 0018c e8 00 00 00 00 call ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ ; std::basic_string,std::allocator >::data + 00191 48 89 85 40 02 + 00 00 mov QWORD PTR tv159[rbp], rax + 00198 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 0019c e8 00 00 00 00 call ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ ; std::basic_string,std::allocator >::size + 001a1 48 8b 8d 40 02 + 00 00 mov rcx, QWORD PTR tv159[rbp] + 001a8 48 03 c8 add rcx, rax + 001ab 48 8b c1 mov rax, rcx + 001ae 48 89 85 48 02 + 00 00 mov QWORD PTR tv172[rbp], rax + 001b5 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 001b9 e8 00 00 00 00 call ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ ; std::basic_string,std::allocator >::data + 001be 48 89 85 50 02 + 00 00 mov QWORD PTR tv170[rbp], rax + 001c5 48 8d 85 a5 00 + 00 00 lea rax, QWORD PTR _Ch$11[rbp+1] + 001cc 48 8b 8d 90 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 001d3 48 83 c1 74 add rcx, 116 ; 00000074H + 001d7 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR _Dest$12[rbp] + 001de 48 89 54 24 38 mov QWORD PTR [rsp+56], rdx + 001e3 48 89 44 24 30 mov QWORD PTR [rsp+48], rax + 001e8 48 8d 85 a4 00 + 00 00 lea rax, QWORD PTR _Ch$11[rbp] + 001ef 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 001f4 48 8d 45 68 lea rax, QWORD PTR _Src$9[rbp] + 001f8 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001fd 4c 8b 8d 48 02 + 00 00 mov r9, QWORD PTR tv172[rbp] + 00204 4c 8b 85 50 02 + 00 00 mov r8, QWORD PTR tv170[rbp] + 0020b 48 8b d1 mov rdx, rcx + 0020e 48 8b 8d 38 02 + 00 00 mov rcx, QWORD PTR tv174[rbp] + 00215 ff 15 00 00 00 + 00 call QWORD PTR __imp_?in@?$codecvt@DDU_Mbstatet@@@std@@QEBAHAEAU_Mbstatet@@PEBD1AEAPEBDPEAD3AEAPEAD@Z + 0021b 89 85 58 02 00 + 00 mov DWORD PTR tv175[rbp], eax + 00221 83 bd 58 02 00 + 00 00 cmp DWORD PTR tv175[rbp], 0 + 00228 0f 8c 10 01 00 + 00 jl $LN16@uflow + 0022e 83 bd 58 02 00 + 00 01 cmp DWORD PTR tv175[rbp], 1 + 00235 7e 12 jle SHORT $LN13@uflow + 00237 83 bd 58 02 00 + 00 03 cmp DWORD PTR tv175[rbp], 3 + 0023e 0f 84 d7 00 00 + 00 je $LN15@uflow + 00244 e9 f5 00 00 00 jmp $LN16@uflow +$LN13@uflow: + +; 521 : _Dest)) { // test result of converting one element +; 522 : case codecvt_base::partial: +; 523 : case codecvt_base::ok: +; 524 : if (_Dest != &_Ch) { // got an element, put back excess and deliver it + + 00249 48 8d 85 a4 00 + 00 00 lea rax, QWORD PTR _Ch$11[rbp] + 00250 48 39 85 c8 00 + 00 00 cmp QWORD PTR _Dest$12[rbp], rax + 00257 0f 84 9b 00 00 + 00 je $LN14@uflow + +; 525 : auto _Nleft = _Str.data() + _Str.size() - _Src; + + 0025d 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 00261 e8 00 00 00 00 call ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ ; std::basic_string,std::allocator >::data + 00266 48 89 85 38 02 + 00 00 mov QWORD PTR tv178[rbp], rax + 0026d 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 00271 e8 00 00 00 00 call ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ ; std::basic_string,std::allocator >::size + 00276 48 8b 8d 38 02 + 00 00 mov rcx, QWORD PTR tv178[rbp] + 0027d 48 03 c8 add rcx, rax + 00280 48 8b c1 mov rax, rcx + 00283 48 2b 45 68 sub rax, QWORD PTR _Src$9[rbp] + 00287 48 89 85 e8 00 + 00 00 mov QWORD PTR _Nleft$13[rbp], rax +$LN7@uflow: + +; 526 : while (0 < _Nleft) { + + 0028e 48 83 bd e8 00 + 00 00 00 cmp QWORD PTR _Nleft$13[rbp], 0 + 00296 7e 3d jle SHORT $LN8@uflow + +; 527 : _CSTD ungetc(_Src[--_Nleft], _Myfile); + + 00298 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Nleft$13[rbp] + 0029f 48 ff c8 dec rax + 002a2 48 89 85 e8 00 + 00 00 mov QWORD PTR _Nleft$13[rbp], rax + 002a9 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Nleft$13[rbp] + 002b0 48 8b 4d 68 mov rcx, QWORD PTR _Src$9[rbp] + 002b4 48 03 c8 add rcx, rax + 002b7 48 8b c1 mov rax, rcx + 002ba 0f be 00 movsx eax, BYTE PTR [rax] + 002bd 48 8b 8d 90 02 + 00 00 mov rcx, QWORD PTR this$[rbp] + 002c4 48 8b 91 80 00 + 00 00 mov rdx, QWORD PTR [rcx+128] + 002cb 8b c8 mov ecx, eax + 002cd ff 15 00 00 00 + 00 call QWORD PTR __imp_ungetc + +; 528 : } + + 002d3 eb b9 jmp SHORT $LN7@uflow +$LN8@uflow: + +; 529 : +; 530 : return _Traits::to_int_type(_Ch); + + 002d5 48 8d 8d a4 00 + 00 00 lea rcx, QWORD PTR _Ch$11[rbp] + 002dc e8 00 00 00 00 call ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ; std::_Narrow_char_traits::to_int_type + 002e1 89 85 e4 01 00 + 00 mov DWORD PTR $T15[rbp], eax + 002e7 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 002eb e8 00 00 00 00 call ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ; std::basic_string,std::allocator >::~basic_string,std::allocator > + 002f0 8b 85 e4 01 00 + 00 mov eax, DWORD PTR $T15[rbp] + 002f6 eb 71 jmp SHORT $LN1@uflow +$LN14@uflow: + +; 531 : } +; 532 : +; 533 : _Str.erase(0, static_cast(_Src - _Str.data())); // partial, discard used input + + 002f8 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 002fc e8 00 00 00 00 call ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ ; std::basic_string,std::allocator >::data + 00301 48 8b 4d 68 mov rcx, QWORD PTR _Src$9[rbp] + 00305 48 2b c8 sub rcx, rax + 00308 48 8b c1 mov rax, rcx + 0030b 4c 8b c0 mov r8, rax + 0030e 33 d2 xor edx, edx + 00310 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 00314 e8 00 00 00 00 call ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K_K@Z ; std::basic_string,std::allocator >::erase + +; 534 : break; + + 00319 eb 3f jmp SHORT $LN5@uflow +$LN15@uflow: + +; 535 : +; 536 : case codecvt_base::noconv: +; 537 : // noconv is only possible if _Elem is char, so we can use it directly +; 538 : return static_cast(_Str.front()); + + 0031b 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 0031f e8 00 00 00 00 call ?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ ; std::basic_string,std::allocator >::front + 00324 0f be 00 movsx eax, BYTE PTR [rax] + 00327 89 85 04 02 00 + 00 mov DWORD PTR $T16[rbp], eax + 0032d 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 00331 e8 00 00 00 00 call ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ; std::basic_string,std::allocator >::~basic_string,std::allocator > + 00336 8b 85 04 02 00 + 00 mov eax, DWORD PTR $T16[rbp] + 0033c eb 2b jmp SHORT $LN1@uflow +$LN16@uflow: + +; 539 : +; 540 : default: +; 541 : return _Traits::eof(); // conversion failed + + 0033e e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00343 89 85 24 02 00 + 00 mov DWORD PTR $T17[rbp], eax + 00349 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 0034d e8 00 00 00 00 call ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ; std::basic_string,std::allocator >::~basic_string,std::allocator > + 00352 8b 85 24 02 00 + 00 mov eax, DWORD PTR $T17[rbp] + 00358 eb 0f jmp SHORT $LN1@uflow +$LN5@uflow: + +; 542 : } +; 543 : } + + 0035a e9 c5 fd ff ff jmp $LN2@uflow + +; 544 : } + + 0035f 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 00363 e8 00 00 00 00 call ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ; std::basic_string,std::allocator >::~basic_string,std::allocator > + 00368 90 npad 1 +$LN1@uflow: + 00369 48 8b f8 mov rdi, rax + 0036c 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] + 00370 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcFrameData + 00377 e8 00 00 00 00 call _RTC_CheckStackVars + 0037c 48 8b c7 mov rax, rdi + 0037f 48 8b 8d 60 02 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00386 48 33 cd xor rcx, rbp + 00389 e8 00 00 00 00 call __security_check_cookie + 0038e 48 8d a5 78 02 + 00 00 lea rsp, QWORD PTR [rbp+632] + 00395 5f pop rdi + 00396 5d pop rbp + 00397 c3 ret 0 +?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ ENDP ; std::basic_filebuf >::uflow +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +_Ch$8 = 4 +_Str$ = 40 +_Src$9 = 104 +_Meta$10 = 132 +_Ch$11 = 164 +_Dest$12 = 200 +_Nleft$13 = 232 +$T14 = 452 +$T15 = 484 +$T16 = 516 +$T17 = 548 +tv139 = 564 +tv178 = 568 +tv174 = 568 +tv76 = 568 +tv159 = 576 +tv172 = 584 +tv170 = 592 +tv175 = 600 +__$ArrayPad$ = 608 +this$ = 656 +?dtor$0@?0??uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ@4HA PROC ; `std::basic_filebuf >::uflow'::`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 40 lea rbp, QWORD PTR [rdx+64] + 00014 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 00018 e8 00 00 00 00 call ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ; std::basic_string,std::allocator >::~basic_string,std::allocator > + 0001d 48 83 c4 28 add rsp, 40 ; 00000028H + 00021 5f pop rdi + 00022 5d pop rbp + 00023 c3 ret 0 +?dtor$0@?0??uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ@4HA ENDP ; `std::basic_filebuf >::uflow'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +_Ch$8 = 4 +_Str$ = 40 +_Src$9 = 104 +_Meta$10 = 132 +_Ch$11 = 164 +_Dest$12 = 200 +_Nleft$13 = 232 +$T14 = 452 +$T15 = 484 +$T16 = 516 +$T17 = 548 +tv139 = 564 +tv178 = 568 +tv174 = 568 +tv76 = 568 +tv159 = 576 +tv172 = 584 +tv170 = 592 +tv175 = 600 +__$ArrayPad$ = 608 +this$ = 656 +?dtor$0@?0??uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ@4HA PROC ; `std::basic_filebuf >::uflow'::`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 40 lea rbp, QWORD PTR [rdx+64] + 00014 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 00018 e8 00 00 00 00 call ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ; std::basic_string,std::allocator >::~basic_string,std::allocator > + 0001d 48 83 c4 28 add rsp, 40 ; 00000028H + 00021 5f pop rdi + 00022 5d pop rbp + 00023 c3 ret 0 +?dtor$0@?0??uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ@4HA ENDP ; `std::basic_filebuf >::uflow'::`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\fstream +; COMDAT ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ +_TEXT SEGMENT +_Meta$ = 4 +$T4 = 228 +tv148 = 248 +tv76 = 248 +__$ArrayPad$ = 256 +this$ = 304 +?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ PROC ; std::basic_filebuf >::underflow, COMDAT + +; 478 : virtual int_type __CLR_OR_THIS_CALL underflow() override { // get an element from stream, but don't point past it + +$LN7: + 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 20 lea rbp, QWORD PTR [rsp+32] + 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 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 00 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 479 : int_type _Meta; +; 480 : if (_Mysb::gptr() && _Mysb::gptr() < _Mysb::egptr()) { + + 00047 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0004e ff 15 00 00 00 + 00 call QWORD PTR __imp_?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ + 00054 48 85 c0 test rax, rax + 00057 74 46 je SHORT $LN2@underflow + 00059 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00060 ff 15 00 00 00 + 00 call QWORD PTR __imp_?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ + 00066 48 89 85 f8 00 + 00 00 mov QWORD PTR tv76[rbp], rax + 0006d 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00074 ff 15 00 00 00 + 00 call QWORD PTR __imp_?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ + 0007a 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR tv76[rbp] + 00081 48 3b c8 cmp rcx, rax + 00084 73 19 jae SHORT $LN2@underflow + +; 481 : return _Traits::to_int_type(*_Mysb::gptr()); // return buffered + + 00086 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d ff 15 00 00 00 + 00 call QWORD PTR __imp_?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ + 00093 48 8b c8 mov rcx, rax + 00096 e8 00 00 00 00 call ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ; std::_Narrow_char_traits::to_int_type + 0009b eb 6a jmp SHORT $LN1@underflow + 0009d eb 68 jmp SHORT $LN3@underflow +$LN2@underflow: + +; 482 : } else if (_Traits::eq_int_type(_Traits::eof(), _Meta = uflow())) { + + 0009f 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000a6 48 8b 00 mov rax, QWORD PTR [rax] + 000a9 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000b0 ff 50 38 call QWORD PTR [rax+56] + 000b3 89 45 04 mov DWORD PTR _Meta$[rbp], eax + 000b6 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 000bb 89 85 e4 00 00 + 00 mov DWORD PTR $T4[rbp], eax + 000c1 48 8d 55 04 lea rdx, QWORD PTR _Meta$[rbp] + 000c5 48 8d 8d e4 00 + 00 00 lea rcx, QWORD PTR $T4[rbp] + 000cc e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 000d1 0f b6 c0 movzx eax, al + 000d4 85 c0 test eax, eax + 000d6 74 07 je SHORT $LN4@underflow + +; 483 : return _Meta; // uflow failed, return EOF + + 000d8 8b 45 04 mov eax, DWORD PTR _Meta$[rbp] + 000db eb 2a jmp SHORT $LN1@underflow + +; 484 : } else { // get a char, don't point past it + + 000dd eb 28 jmp SHORT $LN5@underflow +$LN4@underflow: + +; 485 : pbackfail(_Meta); + + 000df 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000e6 48 8b 00 mov rax, QWORD PTR [rax] + 000e9 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 000ed 48 89 85 f8 00 + 00 00 mov QWORD PTR tv148[rbp], rax + 000f4 8b 55 04 mov edx, DWORD PTR _Meta$[rbp] + 000f7 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000fe ff 95 f8 00 00 + 00 call QWORD PTR tv148[rbp] + +; 486 : return _Meta; + + 00104 8b 45 04 mov eax, DWORD PTR _Meta$[rbp] +$LN5@underflow: +$LN3@underflow: +$LN1@underflow: + +; 487 : } +; 488 : } + + 00107 48 8b f8 mov rdi, rax + 0010a 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0010e 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ$rtcFrameData + 00115 e8 00 00 00 00 call _RTC_CheckStackVars + 0011a 48 8b c7 mov rax, rdi + 0011d 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 00124 48 33 cd xor rcx, rbp + 00127 e8 00 00 00 00 call __security_check_cookie + 0012c 48 8d a5 18 01 + 00 00 lea rsp, QWORD PTR [rbp+280] + 00133 5f pop rdi + 00134 5d pop rbp + 00135 c3 ret 0 +?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ ENDP ; std::basic_filebuf >::underflow +_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\fstream +; COMDAT ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z +_TEXT SEGMENT +$T1 = 196 +$T2 = 228 +$T3 = 260 +$T4 = 292 +tv162 = 312 +tv76 = 312 +this$ = 352 +_Meta$ = 360 +?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z PROC ; std::basic_filebuf >::pbackfail, COMDAT + +; 457 : virtual int_type __CLR_OR_THIS_CALL pbackfail(int_type _Meta = _Traits::eof()) override { + +$LN13: + 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 68 01 + 00 00 sub rsp, 360 ; 00000168H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b fc mov rdi, rsp + 0001a b9 5a 00 00 00 mov ecx, 90 ; 0000005aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 88 + 01 00 00 mov rcx, QWORD PTR [rsp+392] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 458 : // put an element back to stream +; 459 : if (_Mysb::gptr() && _Mysb::eback() < _Mysb::gptr() +; 460 : && (_Traits::eq_int_type(_Traits::eof(), _Meta) + + 0003a 48 8b 8d 60 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00041 ff 15 00 00 00 + 00 call QWORD PTR __imp_?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ + 00047 48 85 c0 test rax, rax + 0004a 0f 84 ba 00 00 + 00 je $LN2@pbackfail + 00050 48 8b 8d 60 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00057 ff 15 00 00 00 + 00 call QWORD PTR __imp_?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ + 0005d 48 89 85 38 01 + 00 00 mov QWORD PTR tv76[rbp], rax + 00064 48 8b 8d 60 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0006b ff 15 00 00 00 + 00 call QWORD PTR __imp_?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ + 00071 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR tv76[rbp] + 00078 48 3b c8 cmp rcx, rax + 0007b 0f 83 89 00 00 + 00 jae $LN2@pbackfail + 00081 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00086 89 85 c4 00 00 + 00 mov DWORD PTR $T1[rbp], eax + 0008c 48 8d 95 68 01 + 00 00 lea rdx, QWORD PTR _Meta$[rbp] + 00093 48 8d 8d c4 00 + 00 00 lea rcx, QWORD PTR $T1[rbp] + 0009a e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 0009f 0f b6 c0 movzx eax, al + 000a2 85 c0 test eax, eax + 000a4 75 41 jne SHORT $LN4@pbackfail + 000a6 48 8b 8d 60 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad ff 15 00 00 00 + 00 call QWORD PTR __imp_?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ + 000b3 b9 01 00 00 00 mov ecx, 1 + 000b8 48 6b c9 ff imul rcx, rcx, -1 + 000bc 48 03 c1 add rax, rcx + 000bf 48 8b c8 mov rcx, rax + 000c2 e8 00 00 00 00 call ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ; std::_Narrow_char_traits::to_int_type + 000c7 89 85 e4 00 00 + 00 mov DWORD PTR $T2[rbp], eax + 000cd 48 8d 95 68 01 + 00 00 lea rdx, QWORD PTR _Meta$[rbp] + 000d4 48 8d 8d e4 00 + 00 00 lea rcx, QWORD PTR $T2[rbp] + 000db e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 000e0 0f b6 c0 movzx eax, al + 000e3 85 c0 test eax, eax + 000e5 74 23 je SHORT $LN2@pbackfail +$LN4@pbackfail: + +; 461 : || _Traits::eq_int_type(_Traits::to_int_type(_Mysb::gptr()[-1]), +; 462 : _Meta))) { // just back up position +; 463 : _Mysb::_Gndec(); + + 000e7 48 8b 8d 60 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ee ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ + +; 464 : return _Traits::not_eof(_Meta); + + 000f4 48 8d 8d 68 01 + 00 00 lea rcx, QWORD PTR _Meta$[rbp] + 000fb e8 00 00 00 00 call ?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z ; std::_Narrow_char_traits::not_eof + 00100 e9 f1 00 00 00 jmp $LN1@pbackfail + 00105 e9 ec 00 00 00 jmp $LN3@pbackfail +$LN2@pbackfail: + +; 465 : } else if (!_Myfile || _Traits::eq_int_type(_Traits::eof(), _Meta)) { + + 0010a 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00111 48 83 b8 80 00 + 00 00 00 cmp QWORD PTR [rax+128], 0 + 00119 74 25 je SHORT $LN7@pbackfail + 0011b e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00120 89 85 04 01 00 + 00 mov DWORD PTR $T3[rbp], eax + 00126 48 8d 95 68 01 + 00 00 lea rdx, QWORD PTR _Meta$[rbp] + 0012d 48 8d 8d 04 01 + 00 00 lea rcx, QWORD PTR $T3[rbp] + 00134 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 00139 0f b6 c0 movzx eax, al + 0013c 85 c0 test eax, eax + 0013e 74 0f je SHORT $LN5@pbackfail +$LN7@pbackfail: + +; 466 : return _Traits::eof(); // no open C stream or EOF, fail + + 00140 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00145 e9 ac 00 00 00 jmp $LN1@pbackfail + 0014a e9 a7 00 00 00 jmp $LN6@pbackfail +$LN5@pbackfail: + +; 467 : } else if (!_Pcvt && _Ungetc(_Traits::to_char_type(_Meta), _Myfile)) { + + 0014f 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00156 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 + 0015b 75 4b jne SHORT $LN8@pbackfail + 0015d 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00164 48 8b 80 80 00 + 00 00 mov rax, QWORD PTR [rax+128] + 0016b 48 89 85 38 01 + 00 00 mov QWORD PTR tv162[rbp], rax + 00172 48 8d 8d 68 01 + 00 00 lea rcx, QWORD PTR _Meta$[rbp] + 00179 e8 00 00 00 00 call ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ; std::_Narrow_char_traits::to_char_type + 0017e 88 85 24 01 00 + 00 mov BYTE PTR $T4[rbp], al + 00184 48 8b 95 38 01 + 00 00 mov rdx, QWORD PTR tv162[rbp] + 0018b 48 8d 8d 24 01 + 00 00 lea rcx, QWORD PTR $T4[rbp] + 00192 e8 00 00 00 00 call ??$_Ungetc@D@std@@YA_NAEBDPEAU_iobuf@@@Z ; std::_Ungetc + 00197 0f b6 c0 movzx eax, al + 0019a 85 c0 test eax, eax + 0019c 74 0a je SHORT $LN8@pbackfail + +; 468 : return _Meta; // no facet and unget succeeded, return + + 0019e 8b 85 68 01 00 + 00 mov eax, DWORD PTR _Meta$[rbp] + 001a4 eb 50 jmp SHORT $LN1@pbackfail + 001a6 eb 4e jmp SHORT $LN9@pbackfail +$LN8@pbackfail: + +; 469 : } else if (_Mysb::gptr() != &_Mychar) { // putback to _Mychar + + 001a8 48 8b 8d 60 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 001af ff 15 00 00 00 + 00 call QWORD PTR __imp_?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ + 001b5 48 8b 8d 60 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 001bc 48 83 c1 70 add rcx, 112 ; 00000070H + 001c0 48 3b c1 cmp rax, rcx + 001c3 74 2c je SHORT $LN10@pbackfail + +; 470 : _Mychar = _Traits::to_char_type(_Meta); + + 001c5 48 8d 8d 68 01 + 00 00 lea rcx, QWORD PTR _Meta$[rbp] + 001cc e8 00 00 00 00 call ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ; std::_Narrow_char_traits::to_char_type + 001d1 48 8b 8d 60 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 001d8 88 41 70 mov BYTE PTR [rcx+112], al + +; 471 : _Set_back(); // switch to _Mychar buffer + + 001db 48 8b 8d 60 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 001e2 e8 00 00 00 00 call ?_Set_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ; std::basic_filebuf >::_Set_back + +; 472 : return _Meta; + + 001e7 8b 85 68 01 00 + 00 mov eax, DWORD PTR _Meta$[rbp] + 001ed eb 07 jmp SHORT $LN1@pbackfail + +; 473 : } else { + + 001ef eb 05 jmp SHORT $LN11@pbackfail +$LN10@pbackfail: + +; 474 : return _Traits::eof(); // nowhere to put back + + 001f1 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof +$LN11@pbackfail: +$LN9@pbackfail: +$LN6@pbackfail: +$LN3@pbackfail: +$LN1@pbackfail: + +; 475 : } +; 476 : } + + 001f6 48 8d a5 48 01 + 00 00 lea rsp, QWORD PTR [rbp+328] + 001fd 5f pop rdi + 001fe 5d pop rbp + 001ff c3 ret 0 +?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z ENDP ; std::basic_filebuf >::pbackfail +_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\fstream +; COMDAT ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z +_TEXT SEGMENT +_Codecvt_temp_buf$ = 8 +_Str$ = 40 +_Ch$ = 100 +_Src$ = 136 +_Dest$ = 168 +_Count$7 = 200 +$T8 = 420 +tv192 = 436 +tv133 = 436 +tv170 = 440 +tv149 = 440 +tv84 = 440 +tv171 = 448 +tv147 = 448 +tv153 = 452 +__$ArrayPad$ = 456 +this$ = 496 +_Meta$ = 504 +?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z PROC ; std::basic_filebuf >::overflow, COMDAT + +; 406 : virtual int_type __CLR_OR_THIS_CALL overflow(int_type _Meta = _Traits::eof()) override { // put an element to stream + +$LN18: + 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 18 02 + 00 00 sub rsp, 536 ; 00000218H + 00012 48 8d 6c 24 40 lea rbp, QWORD PTR [rsp+64] + 00017 48 8b fc mov rdi, rsp + 0001a b9 86 00 00 00 mov ecx, 134 ; 00000086H + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 38 + 02 00 00 mov rcx, QWORD PTR [rsp+568] + 0002e 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00035 48 33 c5 xor rax, rbp + 00038 48 89 85 c8 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00046 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 407 : if (_Traits::eq_int_type(_Traits::eof(), _Meta)) { + + 0004b e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00050 89 85 a4 01 00 + 00 mov DWORD PTR $T8[rbp], eax + 00056 48 8d 95 f8 01 + 00 00 lea rdx, QWORD PTR _Meta$[rbp] + 0005d 48 8d 8d a4 01 + 00 00 lea rcx, QWORD PTR $T8[rbp] + 00064 e8 00 00 00 00 call ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z ; std::_Narrow_char_traits::eq_int_type + 00069 0f b6 c0 movzx eax, al + 0006c 85 c0 test eax, eax + 0006e 74 11 je SHORT $LN4@overflow + +; 408 : return _Traits::not_eof(_Meta); // EOF, return success code + + 00070 48 8d 8d f8 01 + 00 00 lea rcx, QWORD PTR _Meta$[rbp] + 00077 e8 00 00 00 00 call ?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z ; std::_Narrow_char_traits::not_eof + 0007c e9 71 02 00 00 jmp $LN1@overflow +$LN4@overflow: + +; 409 : } +; 410 : +; 411 : if (_Mysb::pptr() && _Mysb::pptr() < _Mysb::epptr()) { // room in buffer, store it + + 00081 48 8b 8d f0 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00088 ff 15 00 00 00 + 00 call QWORD PTR __imp_?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ + 0008e 48 85 c0 test rax, rax + 00091 74 60 je SHORT $LN5@overflow + 00093 48 8b 8d f0 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0009a ff 15 00 00 00 + 00 call QWORD PTR __imp_?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ + 000a0 48 89 85 b8 01 + 00 00 mov QWORD PTR tv84[rbp], rax + 000a7 48 8b 8d f0 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ae ff 15 00 00 00 + 00 call QWORD PTR __imp_?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ + 000b4 48 8b 8d b8 01 + 00 00 mov rcx, QWORD PTR tv84[rbp] + 000bb 48 3b c8 cmp rcx, rax + 000be 73 33 jae SHORT $LN5@overflow + +; 412 : *_Mysb::_Pninc() = _Traits::to_char_type(_Meta); + + 000c0 48 8d 8d f8 01 + 00 00 lea rcx, QWORD PTR _Meta$[rbp] + 000c7 e8 00 00 00 00 call ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ; std::_Narrow_char_traits::to_char_type + 000cc 88 85 b4 01 00 + 00 mov BYTE PTR tv133[rbp], al + 000d2 48 8b 8d f0 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000d9 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ + 000df 0f b6 8d b4 01 + 00 00 movzx ecx, BYTE PTR tv133[rbp] + 000e6 88 08 mov BYTE PTR [rax], cl + +; 413 : return _Meta; + + 000e8 8b 85 f8 01 00 + 00 mov eax, DWORD PTR _Meta$[rbp] + 000ee e9 ff 01 00 00 jmp $LN1@overflow +$LN5@overflow: + +; 414 : } +; 415 : +; 416 : if (!_Myfile) { + + 000f3 48 8b 85 f0 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000fa 48 83 b8 80 00 + 00 00 00 cmp QWORD PTR [rax+128], 0 + 00102 75 0a jne SHORT $LN6@overflow + +; 417 : return _Traits::eof(); // no open C stream, fail + + 00104 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00109 e9 e4 01 00 00 jmp $LN1@overflow +$LN6@overflow: + +; 418 : } +; 419 : +; 420 : _Reset_back(); // revert from _Mychar buffer + + 0010e 48 8b 8d f0 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00115 e8 00 00 00 00 call ?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ; std::basic_filebuf >::_Reset_back + +; 421 : if (!_Pcvt) { // no codecvt facet, put as is + + 0011a 48 8b 85 f0 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00121 48 83 78 68 00 cmp QWORD PTR [rax+104], 0 + 00126 75 65 jne SHORT $LN7@overflow + +; 422 : return _Fputc(_Traits::to_char_type(_Meta), _Myfile) ? _Meta : _Traits::eof(); + + 00128 48 8b 85 f0 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0012f 48 8b 80 80 00 + 00 00 mov rax, QWORD PTR [rax+128] + 00136 48 89 85 b8 01 + 00 00 mov QWORD PTR tv149[rbp], rax + 0013d 48 8d 8d f8 01 + 00 00 lea rcx, QWORD PTR _Meta$[rbp] + 00144 e8 00 00 00 00 call ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ; std::_Narrow_char_traits::to_char_type + 00149 88 85 c0 01 00 + 00 mov BYTE PTR tv147[rbp], al + 0014f 48 8b 95 b8 01 + 00 00 mov rdx, QWORD PTR tv149[rbp] + 00156 0f b6 8d c0 01 + 00 00 movzx ecx, BYTE PTR tv147[rbp] + 0015d e8 00 00 00 00 call ??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z ; std::_Fputc + 00162 0f b6 c0 movzx eax, al + 00165 85 c0 test eax, eax + 00167 74 0e je SHORT $LN14@overflow + 00169 8b 85 f8 01 00 + 00 mov eax, DWORD PTR _Meta$[rbp] + 0016f 89 85 c4 01 00 + 00 mov DWORD PTR tv153[rbp], eax + 00175 eb 0b jmp SHORT $LN15@overflow +$LN14@overflow: + 00177 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 0017c 89 85 c4 01 00 + 00 mov DWORD PTR tv153[rbp], eax +$LN15@overflow: + 00182 8b 85 c4 01 00 + 00 mov eax, DWORD PTR tv153[rbp] + 00188 e9 65 01 00 00 jmp $LN1@overflow +$LN7@overflow: + +; 423 : } +; 424 : +; 425 : // put using codecvt facet +; 426 : constexpr size_t _Codecvt_temp_buf = 32; + + 0018d 48 c7 45 08 20 + 00 00 00 mov QWORD PTR _Codecvt_temp_buf$[rbp], 32 ; 00000020H + +; 427 : char _Str[_Codecvt_temp_buf]; +; 428 : const _Elem _Ch = _Traits::to_char_type(_Meta); + + 00195 48 8d 8d f8 01 + 00 00 lea rcx, QWORD PTR _Meta$[rbp] + 0019c e8 00 00 00 00 call ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ; std::_Narrow_char_traits::to_char_type + 001a1 88 45 64 mov BYTE PTR _Ch$[rbp], al + +; 429 : const _Elem* _Src; +; 430 : char* _Dest; +; 431 : switch (_Pcvt->out(_State, &_Ch, &_Ch + 1, _Src, _Str, _Str + _Codecvt_temp_buf, + + 001a4 48 8b 85 f0 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 001ab 48 8b 40 68 mov rax, QWORD PTR [rax+104] + 001af 48 89 85 b8 01 + 00 00 mov QWORD PTR tv170[rbp], rax + 001b6 48 8d 45 48 lea rax, QWORD PTR _Str$[rbp+32] + 001ba 48 8d 4d 65 lea rcx, QWORD PTR _Ch$[rbp+1] + 001be 48 8b 95 f0 01 + 00 00 mov rdx, QWORD PTR this$[rbp] + 001c5 48 83 c2 74 add rdx, 116 ; 00000074H + 001c9 4c 8d 85 a8 00 + 00 00 lea r8, QWORD PTR _Dest$[rbp] + 001d0 4c 89 44 24 38 mov QWORD PTR [rsp+56], r8 + 001d5 48 89 44 24 30 mov QWORD PTR [rsp+48], rax + 001da 48 8d 45 28 lea rax, QWORD PTR _Str$[rbp] + 001de 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 001e3 48 8d 85 88 00 + 00 00 lea rax, QWORD PTR _Src$[rbp] + 001ea 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001ef 4c 8b c9 mov r9, rcx + 001f2 4c 8d 45 64 lea r8, QWORD PTR _Ch$[rbp] + 001f6 48 8b 8d b8 01 + 00 00 mov rcx, QWORD PTR tv170[rbp] + 001fd ff 15 00 00 00 + 00 call QWORD PTR __imp_?out@?$codecvt@DDU_Mbstatet@@@std@@QEBAHAEAU_Mbstatet@@PEBD1AEAPEBDPEAD3AEAPEAD@Z + 00203 89 85 c0 01 00 + 00 mov DWORD PTR tv171[rbp], eax + 00209 83 bd c0 01 00 + 00 00 cmp DWORD PTR tv171[rbp], 0 + 00210 0f 8c d7 00 00 + 00 jl $LN12@overflow + 00216 83 bd c0 01 00 + 00 01 cmp DWORD PTR tv171[rbp], 1 + 0021d 7e 12 jle SHORT $LN8@overflow + 0021f 83 bd c0 01 00 + 00 03 cmp DWORD PTR tv171[rbp], 3 + 00226 0f 84 82 00 00 + 00 je $LN11@overflow + 0022c e9 bc 00 00 00 jmp $LN12@overflow +$LN8@overflow: + +; 432 : _Dest)) { // test result of converting one element +; 433 : case codecvt_base::partial: +; 434 : case codecvt_base::ok: { // converted something, try to put it out +; 435 : const auto _Count = static_cast(_Dest - _Str); + + 00231 48 8d 45 28 lea rax, QWORD PTR _Str$[rbp] + 00235 48 8b 8d a8 00 + 00 00 mov rcx, QWORD PTR _Dest$[rbp] + 0023c 48 2b c8 sub rcx, rax + 0023f 48 8b c1 mov rax, rcx + 00242 48 89 85 c8 00 + 00 00 mov QWORD PTR _Count$7[rbp], rax + +; 436 : if (0 < _Count && _Count != static_cast(_CSTD fwrite(_Str, 1, _Count, _Myfile))) { + + 00249 48 83 bd c8 00 + 00 00 00 cmp QWORD PTR _Count$7[rbp], 0 + 00251 76 34 jbe SHORT $LN9@overflow + 00253 48 8b 85 f0 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0025a 4c 8b 88 80 00 + 00 00 mov r9, QWORD PTR [rax+128] + 00261 4c 8b 85 c8 00 + 00 00 mov r8, QWORD PTR _Count$7[rbp] + 00268 ba 01 00 00 00 mov edx, 1 + 0026d 48 8d 4d 28 lea rcx, QWORD PTR _Str$[rbp] + 00271 ff 15 00 00 00 + 00 call QWORD PTR __imp_fwrite + 00277 48 39 85 c8 00 + 00 00 cmp QWORD PTR _Count$7[rbp], rax + 0027e 74 07 je SHORT $LN9@overflow + +; 437 : return _Traits::eof(); // write failed + + 00280 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 00285 eb 6b jmp SHORT $LN1@overflow +$LN9@overflow: + +; 438 : } +; 439 : +; 440 : _Wrotesome = true; // write succeeded + + 00287 48 8b 85 f0 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0028e c6 40 71 01 mov BYTE PTR [rax+113], 1 + +; 441 : if (_Src != &_Ch) { + + 00292 48 8d 45 64 lea rax, QWORD PTR _Ch$[rbp] + 00296 48 39 85 88 00 + 00 00 cmp QWORD PTR _Src$[rbp], rax + 0029d 74 08 je SHORT $LN10@overflow + +; 442 : return _Meta; // converted whole element + + 0029f 8b 85 f8 01 00 + 00 mov eax, DWORD PTR _Meta$[rbp] + 002a5 eb 4b jmp SHORT $LN1@overflow +$LN10@overflow: + +; 443 : } +; 444 : +; 445 : return _Traits::eof(); // conversion failed + + 002a7 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 002ac eb 44 jmp SHORT $LN1@overflow +$LN11@overflow: + +; 446 : } +; 447 : +; 448 : case codecvt_base::noconv: +; 449 : // no conversion, put as is +; 450 : return _Fputc(_Ch, _Myfile) ? _Meta : _Traits::eof(); + + 002ae 48 8b 85 f0 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 002b5 48 8b 90 80 00 + 00 00 mov rdx, QWORD PTR [rax+128] + 002bc 0f b6 4d 64 movzx ecx, BYTE PTR _Ch$[rbp] + 002c0 e8 00 00 00 00 call ??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z ; std::_Fputc + 002c5 0f b6 c0 movzx eax, al + 002c8 85 c0 test eax, eax + 002ca 74 0e je SHORT $LN16@overflow + 002cc 8b 85 f8 01 00 + 00 mov eax, DWORD PTR _Meta$[rbp] + 002d2 89 85 b4 01 00 + 00 mov DWORD PTR tv192[rbp], eax + 002d8 eb 0b jmp SHORT $LN17@overflow +$LN16@overflow: + 002da e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 002df 89 85 b4 01 00 + 00 mov DWORD PTR tv192[rbp], eax +$LN17@overflow: + 002e5 8b 85 b4 01 00 + 00 mov eax, DWORD PTR tv192[rbp] + 002eb eb 05 jmp SHORT $LN1@overflow +$LN12@overflow: + +; 451 : +; 452 : default: +; 453 : return _Traits::eof(); // conversion failed + + 002ed e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof +$LN1@overflow: + +; 454 : } +; 455 : } + + 002f2 48 8b f8 mov rdi, rax + 002f5 48 8d 4d c0 lea rcx, QWORD PTR [rbp-64] + 002f9 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z$rtcFrameData + 00300 e8 00 00 00 00 call _RTC_CheckStackVars + 00305 48 8b c7 mov rax, rdi + 00308 48 8b 8d c8 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 0030f 48 33 cd xor rcx, rbp + 00312 e8 00 00 00 00 call __security_check_cookie + 00317 48 8d a5 d8 01 + 00 00 lea rsp, QWORD PTR [rbp+472] + 0031e 5f pop rdi + 0031f 5d pop rbp + 00320 c3 ret 0 +?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z ENDP ; std::basic_filebuf >::overflow +_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\fstream +; COMDAT ?_Unlock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ +_TEXT SEGMENT +this$ = 224 +?_Unlock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ PROC ; std::basic_filebuf >::_Unlock, COMDAT + +; 399 : virtual void __CLR_OR_THIS_CALL _Unlock() override { // unlock file instead of stream buffer + +$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 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:__88EC1446_fstream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 400 : if (_Myfile) { + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 83 b8 80 00 + 00 00 00 cmp QWORD PTR [rax+128], 0 + 00045 74 14 je SHORT $LN2@Unlock + +; 401 : _CSTD _unlock_file(_Myfile); + + 00047 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004e 48 8b 88 80 00 + 00 00 mov rcx, QWORD PTR [rax+128] + 00055 ff 15 00 00 00 + 00 call QWORD PTR __imp__unlock_file +$LN2@Unlock: + +; 402 : } +; 403 : } + + 0005b 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 +?_Unlock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ ENDP ; std::basic_filebuf >::_Unlock +_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\fstream +; COMDAT ?_Lock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ +_TEXT SEGMENT +this$ = 224 +?_Lock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ PROC ; std::basic_filebuf >::_Lock, COMDAT + +; 393 : virtual void __CLR_OR_THIS_CALL _Lock() override { // lock file instead of stream buffer + +$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 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:__88EC1446_fstream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 394 : if (_Myfile) { + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 83 b8 80 00 + 00 00 00 cmp QWORD PTR [rax+128], 0 + 00045 74 14 je SHORT $LN2@Lock + +; 395 : _CSTD _lock_file(_Myfile); + + 00047 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004e 48 8b 88 80 00 + 00 00 mov rcx, QWORD PTR [rax+128] + 00055 ff 15 00 00 00 + 00 call QWORD PTR __imp__lock_file +$LN2@Lock: + +; 396 : } +; 397 : } + + 0005b 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 +?_Lock@?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAAXXZ ENDP ; std::basic_filebuf >::_Lock +_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\fstream +; COMDAT ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ +_TEXT SEGMENT +_Ans$ = 8 +this$ = 256 +?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ PROC ; std::basic_filebuf >::close, COMDAT + +; 374 : basic_filebuf* close() { + +$LN7: + 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:__88EC1446_fstream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 375 : basic_filebuf* _Ans; +; 376 : if (_Myfile) { // put any homing sequence and close file + + 00036 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 83 b8 80 00 + 00 00 00 cmp QWORD PTR [rax+128], 0 + 00045 74 48 je SHORT $LN2@close + +; 377 : _Ans = this; + + 00047 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004e 48 89 45 08 mov QWORD PTR _Ans$[rbp], rax + +; 378 : if (!_Endwrite()) { + + 00052 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00059 e8 00 00 00 00 call ?_Endwrite@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAA_NXZ ; std::basic_filebuf >::_Endwrite + 0005e 0f b6 c0 movzx eax, al + 00061 85 c0 test eax, eax + 00063 75 08 jne SHORT $LN4@close + +; 379 : _Ans = nullptr; + + 00065 48 c7 45 08 00 + 00 00 00 mov QWORD PTR _Ans$[rbp], 0 +$LN4@close: + +; 380 : } +; 381 : +; 382 : if (_CSTD fclose(_Myfile) != 0) { + + 0006d 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00074 48 8b 88 80 00 + 00 00 mov rcx, QWORD PTR [rax+128] + 0007b ff 15 00 00 00 + 00 call QWORD PTR __imp_fclose + 00081 85 c0 test eax, eax + 00083 74 08 je SHORT $LN5@close + +; 383 : _Ans = nullptr; + + 00085 48 c7 45 08 00 + 00 00 00 mov QWORD PTR _Ans$[rbp], 0 +$LN5@close: + +; 384 : } +; 385 : } else { + + 0008d eb 08 jmp SHORT $LN3@close +$LN2@close: + +; 386 : _Ans = nullptr; + + 0008f 48 c7 45 08 00 + 00 00 00 mov QWORD PTR _Ans$[rbp], 0 +$LN3@close: + +; 387 : } +; 388 : +; 389 : _Init(nullptr, _Closefl); + + 00097 41 b8 02 00 00 + 00 mov r8d, 2 + 0009d 33 d2 xor edx, edx + 0009f 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000a6 e8 00 00 00 00 call ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z ; std::basic_filebuf >::_Init + +; 390 : return _Ans; + + 000ab 48 8b 45 08 mov rax, QWORD PTR _Ans$[rbp] + +; 391 : } + + 000af 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 +?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ ENDP ; std::basic_filebuf >::close +_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\fstream +; COMDAT ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z +_TEXT SEGMENT +_File$ = 8 +$T1 = 232 +tv90 = 264 +tv89 = 272 +this$ = 320 +_Filename$ = 328 +_Mode$ = 336 +_Prot$ = 344 +?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z PROC ; std::basic_filebuf >::open, COMDAT + +; 275 : basic_filebuf* open(const char* _Filename, ios_base::openmode _Mode, int _Prot = ios_base::_Default_open_prot) { + +$LN6: + 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d + 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec 48 01 + 00 00 sub rsp, 328 ; 00000148H + 0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00022 48 8b fc mov rdi, rsp + 00025 b9 52 00 00 00 mov ecx, 82 ; 00000052H + 0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002f f3 ab rep stosd + 00031 48 8b 8c 24 68 + 01 00 00 mov rcx, QWORD PTR [rsp+360] + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 276 : // _Prot is an extension +; 277 : if (_Myfile) { + + 00045 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004c 48 83 b8 80 00 + 00 00 00 cmp QWORD PTR [rax+128], 0 + 00054 74 07 je SHORT $LN2@open + +; 278 : return nullptr; + + 00056 33 c0 xor eax, eax + 00058 e9 96 00 00 00 jmp $LN1@open +$LN2@open: + +; 279 : } +; 280 : +; 281 : const auto _File = _Fiopen(_Filename, _Mode, _Prot); + + 0005d 44 8b 85 58 01 + 00 00 mov r8d, DWORD PTR _Prot$[rbp] + 00064 8b 95 50 01 00 + 00 mov edx, DWORD PTR _Mode$[rbp] + 0006a 48 8b 8d 48 01 + 00 00 mov rcx, QWORD PTR _Filename$[rbp] + 00071 e8 00 00 00 00 call ?_Fiopen@std@@YAPEAU_iobuf@@PEBDHH@Z ; std::_Fiopen + 00076 48 89 45 08 mov QWORD PTR _File$[rbp], rax + +; 282 : if (!_File) { + + 0007a 48 83 7d 08 00 cmp QWORD PTR _File$[rbp], 0 + 0007f 75 04 jne SHORT $LN3@open + +; 283 : return nullptr; // open failed + + 00081 33 c0 xor eax, eax + 00083 eb 6e jmp SHORT $LN1@open +$LN3@open: + +; 284 : } +; 285 : +; 286 : _Init(_File, _Openfl); + + 00085 41 b8 01 00 00 + 00 mov r8d, 1 + 0008b 48 8b 55 08 mov rdx, QWORD PTR _File$[rbp] + 0008f 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00096 e8 00 00 00 00 call ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z ; std::basic_filebuf >::_Init + +; 287 : _Initcvt(_STD use_facet<_Cvt>(_Mysb::getloc())); + + 0009b 48 8d 95 e8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 000a2 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000a9 ff 15 00 00 00 + 00 call QWORD PTR __imp_?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEBA?AVlocale@2@XZ + 000af 48 89 85 08 01 + 00 00 mov QWORD PTR tv90[rbp], rax + 000b6 48 8b 85 08 01 + 00 00 mov rax, QWORD PTR tv90[rbp] + 000bd 48 89 85 10 01 + 00 00 mov QWORD PTR tv89[rbp], rax + 000c4 48 8b 8d 10 01 + 00 00 mov rcx, QWORD PTR tv89[rbp] + 000cb e8 00 00 00 00 call ??$use_facet@V?$codecvt@DDU_Mbstatet@@@std@@@std@@YAAEBV?$codecvt@DDU_Mbstatet@@@0@AEBVlocale@0@@Z ; std::use_facet > + 000d0 48 8b d0 mov rdx, rax + 000d3 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000da e8 00 00 00 00 call ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXAEBV?$codecvt@DDU_Mbstatet@@@2@@Z ; std::basic_filebuf >::_Initcvt + 000df 90 npad 1 + 000e0 48 8d 8d e8 00 + 00 00 lea rcx, QWORD PTR $T1[rbp] + 000e7 e8 00 00 00 00 call ??1locale@std@@QEAA@XZ ; std::locale::~locale + +; 288 : return this; // open succeeded + + 000ec 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] +$LN1@open: + +; 289 : } + + 000f3 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000fa 5f pop rdi + 000fb 5d pop rbp + 000fc c3 ret 0 +?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z ENDP ; std::basic_filebuf >::open +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +_File$ = 8 +$T1 = 232 +tv90 = 264 +tv89 = 272 +this$ = 320 +_Filename$ = 328 +_Mode$ = 336 +_Prot$ = 344 +?dtor$0@?0??open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z@4HA PROC ; `std::basic_filebuf >::open'::`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 8d e8 00 + 00 00 lea rcx, QWORD PTR $T1[rbp] + 0001b e8 00 00 00 00 call ??1locale@std@@QEAA@XZ ; std::locale::~locale + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$0@?0??open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z@4HA ENDP ; `std::basic_filebuf >::open'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +_File$ = 8 +$T1 = 232 +tv90 = 264 +tv89 = 272 +this$ = 320 +_Filename$ = 328 +_Mode$ = 336 +_Prot$ = 344 +?dtor$0@?0??open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z@4HA PROC ; `std::basic_filebuf >::open'::`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 8d e8 00 + 00 00 lea rcx, QWORD PTR $T1[rbp] + 0001b e8 00 00 00 00 call ??1locale@std@@QEAA@XZ ; std::locale::~locale + 00020 48 83 c4 28 add rsp, 40 ; 00000028H + 00024 5f pop rdi + 00025 5d pop rbp + 00026 c3 ret 0 +?dtor$0@?0??open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z@4HA ENDP ; `std::basic_filebuf >::open'::`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\fstream +; COMDAT ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ +_TEXT SEGMENT +this$ = 224 +??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ PROC ; std::basic_filebuf >::~basic_filebuf >, COMDAT + +; 170 : virtual __CLR_OR_THIS_CALL ~basic_filebuf() noexcept { + +$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:__88EC1446_fstream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ + 00044 48 89 08 mov QWORD PTR [rax], rcx + +; 171 : if (_Myfile) { + + 00047 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004e 48 83 b8 80 00 + 00 00 00 cmp QWORD PTR [rax+128], 0 + 00056 74 0c je SHORT $LN2@basic_file + +; 172 : _Reset_back(); // revert from _Mychar buffer + + 00058 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005f e8 00 00 00 00 call ?_Reset_back@?$basic_filebuf@DU?$char_traits@D@std@@@std@@AEAAXXZ ; std::basic_filebuf >::_Reset_back +$LN2@basic_file: + +; 173 : } +; 174 : +; 175 : if (_Closef) { + + 00064 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006b 0f b6 40 7c movzx eax, BYTE PTR [rax+124] + 0006f 85 c0 test eax, eax + 00071 74 0c je SHORT $LN3@basic_file + +; 176 : close(); + + 00073 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0007a e8 00 00 00 00 call ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ ; std::basic_filebuf >::close +$LN3@basic_file: + +; 177 : } +; 178 : } + + 0007f 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00086 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ + 0008c 90 npad 1 + 0008d 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00094 5f pop rdi + 00095 5d pop rbp + 00096 c3 ret 0 +??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ ENDP ; std::basic_filebuf >::~basic_filebuf > +_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\fstream +; COMDAT ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ +_TEXT SEGMENT +this$ = 224 +??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ PROC ; std::basic_filebuf >::basic_filebuf >, COMDAT + +; 162 : basic_filebuf() : _Mysb() { + +$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 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:__88EC1446_fstream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0003d ff 15 00 00 00 + 00 call QWORD PTR __imp_??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ + 00043 90 npad 1 + 00044 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ + 00052 48 89 08 mov QWORD PTR [rax], rcx + +; 163 : _Init(nullptr, _Newfl); + + 00055 45 33 c0 xor r8d, r8d + 00058 33 d2 xor edx, edx + 0005a 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00061 e8 00 00 00 00 call ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z ; std::basic_filebuf >::_Init + 00066 90 npad 1 + +; 164 : } + + 00067 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006e 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 +??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ ENDP ; std::basic_filebuf >::basic_filebuf > +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +this$ = 224 +?dtor$0@?0???0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA PROC ; `std::basic_filebuf >::basic_filebuf >'::`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 e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0001b ff 15 00 00 00 + 00 call QWORD PTR __imp_??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ + 00021 48 83 c4 28 add rsp, 40 ; 00000028H + 00025 5f pop rdi + 00026 5d pop rbp + 00027 c3 ret 0 +?dtor$0@?0???0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA ENDP ; `std::basic_filebuf >::basic_filebuf >'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +this$ = 224 +?dtor$0@?0???0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA PROC ; `std::basic_filebuf >::basic_filebuf >'::`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 e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0001b ff 15 00 00 00 + 00 call QWORD PTR __imp_??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ + 00021 48 83 c4 28 add rsp, 40 ; 00000028H + 00025 5f pop rdi + 00026 5d pop rbp + 00027 c3 ret 0 +?dtor$0@?0???0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA ENDP ; `std::basic_filebuf >::basic_filebuf >'::`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\fstream +; COMDAT ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ +_TEXT SEGMENT +tv82 = 192 +this$ = 240 +?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ PROC ; std::basic_ofstream >::close, COMDAT + +; 1168 : void close() { + +$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 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:__88EC1446_fstream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1169 : if (!_Filebuffer.close()) { + + 00036 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 83 c0 08 add rax, 8 + 00041 48 8b c8 mov rcx, rax + 00044 e8 00 00 00 00 call ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ ; std::basic_filebuf >::close + 00049 48 85 c0 test rax, rax + 0004c 75 37 jne SHORT $LN2@close + +; 1170 : _Myios::setstate(ios_base::failbit); + + 0004e 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00055 48 8b 00 mov rax, QWORD PTR [rax] + 00058 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 0005c 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00063 48 03 c8 add rcx, rax + 00066 48 8b c1 mov rax, rcx + 00069 48 89 85 c0 00 + 00 00 mov QWORD PTR tv82[rbp], rax + 00070 45 33 c0 xor r8d, r8d + 00073 ba 02 00 00 00 mov edx, 2 + 00078 48 8b 8d c0 00 + 00 00 mov rcx, QWORD PTR tv82[rbp] + 0007f ff 15 00 00 00 + 00 call QWORD PTR __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z +$LN2@close: + +; 1171 : } +; 1172 : } + + 00085 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 0008c 5f pop rdi + 0008d 5d pop rbp + 0008e c3 ret 0 +?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ ENDP ; std::basic_ofstream >::close +_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\fstream +; COMDAT ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z +_TEXT SEGMENT +tv135 = 192 +tv88 = 192 +tv72 = 192 +this$ = 240 +_Filename$ = 248 +_Mode$ = 256 +_Prot$ = 264 +?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z PROC ; std::basic_ofstream >::open, COMDAT + +; 1148 : const char* _Filename, ios_base::openmode _Mode = ios_base::out, int _Prot = ios_base::_Default_open_prot) { + +$LN5: + 00000 44 89 4c 24 20 mov DWORD PTR [rsp+32], r9d + 00005 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d + 0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00014 55 push rbp + 00015 57 push rdi + 00016 48 81 ec 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:__88EC1446_fstream + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1149 : // _Prot is an extension +; 1150 : if (_Filebuffer.open(_Filename, _Mode | ios_base::out, _Prot)) { + + 00045 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004c 48 83 c0 08 add rax, 8 + 00050 48 89 85 c0 00 + 00 00 mov QWORD PTR tv72[rbp], rax + 00057 8b 85 00 01 00 + 00 mov eax, DWORD PTR _Mode$[rbp] + 0005d 83 c8 02 or eax, 2 + 00060 44 8b 8d 08 01 + 00 00 mov r9d, DWORD PTR _Prot$[rbp] + 00067 44 8b c0 mov r8d, eax + 0006a 48 8b 95 f8 00 + 00 00 mov rdx, QWORD PTR _Filename$[rbp] + 00071 48 8b 8d c0 00 + 00 00 mov rcx, QWORD PTR tv72[rbp] + 00078 e8 00 00 00 00 call ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDHH@Z ; std::basic_filebuf >::open + 0007d 48 85 c0 test rax, rax + 00080 74 36 je SHORT $LN2@open + +; 1151 : _Myios::clear(); + + 00082 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00089 48 8b 00 mov rax, QWORD PTR [rax] + 0008c 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00090 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00097 48 03 c8 add rcx, rax + 0009a 48 8b c1 mov rax, rcx + 0009d 48 89 85 c0 00 + 00 00 mov QWORD PTR tv88[rbp], rax + 000a4 45 33 c0 xor r8d, r8d + 000a7 33 d2 xor edx, edx + 000a9 48 8b 8d c0 00 + 00 00 mov rcx, QWORD PTR tv88[rbp] + 000b0 ff 15 00 00 00 + 00 call QWORD PTR __imp_?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z + +; 1152 : } else { + + 000b6 eb 37 jmp SHORT $LN3@open +$LN2@open: + +; 1153 : _Myios::setstate(ios_base::failbit); + + 000b8 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 000bf 48 8b 00 mov rax, QWORD PTR [rax] + 000c2 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000c6 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000cd 48 03 c8 add rcx, rax + 000d0 48 8b c1 mov rax, rcx + 000d3 48 89 85 c0 00 + 00 00 mov QWORD PTR tv135[rbp], rax + 000da 45 33 c0 xor r8d, r8d + 000dd ba 02 00 00 00 mov edx, 2 + 000e2 48 8b 8d c0 00 + 00 00 mov rcx, QWORD PTR tv135[rbp] + 000e9 ff 15 00 00 00 + 00 call QWORD PTR __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z +$LN3@open: + +; 1154 : } +; 1155 : } + + 000ef 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 000f6 5f pop rdi + 000f7 5d pop rbp + 000f8 c3 ret 0 +?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z ENDP ; std::basic_ofstream >::open +_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\fstream +; COMDAT ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ +_TEXT SEGMENT +this$ = 224 +??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ PROC ; std::basic_ofstream >::~basic_ofstream >, COMDAT + +; 1137 : virtual __CLR_OR_THIS_CALL ~basic_ofstream() 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:__88EC1446_fstream + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 8b 80 58 ff + ff ff mov rax, QWORD PTR [rax-168] + 00044 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00048 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0004f 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_7?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ + 00056 48 89 94 01 58 + ff ff ff mov QWORD PTR [rcx+rax-168], rdx + 0005e 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00065 48 8b 80 58 ff + ff ff mov rax, QWORD PTR [rax-168] + 0006c 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 00070 48 2d a8 00 00 + 00 sub rax, 168 ; 000000a8H + 00076 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0007d 48 8b 89 58 ff + ff ff mov rcx, QWORD PTR [rcx-168] + 00084 48 63 49 04 movsxd rcx, DWORD PTR [rcx+4] + 00088 48 8b 95 e0 00 + 00 00 mov rdx, QWORD PTR this$[rbp] + 0008f 89 84 0a 54 ff + ff ff mov DWORD PTR [rdx+rcx-172], eax + 00096 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0009d 48 2d a0 00 00 + 00 sub rax, 160 ; 000000a0H + 000a3 48 8b c8 mov rcx, rax + 000a6 e8 00 00 00 00 call ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ ; std::basic_filebuf >::~basic_filebuf > + 000ab 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 000b2 48 2d 98 00 00 + 00 sub rax, 152 ; 00000098H + 000b8 48 8b c8 mov rcx, rax + 000bb ff 15 00 00 00 + 00 call QWORD PTR __imp_??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ + 000c1 90 npad 1 + 000c2 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 000c9 5f pop rdi + 000ca 5d pop rbp + 000cb c3 ret 0 +??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ ENDP ; std::basic_ofstream >::~basic_ofstream > +_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\fstream +; COMDAT ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ +_TEXT SEGMENT +$T1 = 196 +this$ = 256 +$initVBases$ = 264 +??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ PROC ; std::basic_ofstream >::basic_ofstream >, COMDAT + +; 998 : basic_ofstream() : _Mybase(_STD addressof(_Filebuffer)) {} + +$LN8: + 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 c7 85 c4 00 00 + 00 00 00 00 00 mov DWORD PTR $T1[rbp], 0 + 00038 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 0003f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 83 bd 08 01 00 + 00 00 cmp DWORD PTR $initVBases$[rbp], 0 + 0004b 74 37 je SHORT $LN2@basic_ofst + 0004d 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00054 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_8?$basic_ofstream@DU?$char_traits@D@std@@@std@@7B@ + 0005b 48 89 08 mov QWORD PTR [rax], rcx + 0005e 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00065 48 05 a8 00 00 + 00 add rax, 168 ; 000000a8H + 0006b 48 8b c8 mov rcx, rax + 0006e ff 15 00 00 00 + 00 call QWORD PTR __imp_??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ + 00074 90 npad 1 + 00075 8b 85 c4 00 00 + 00 mov eax, DWORD PTR $T1[rbp] + 0007b 83 c8 01 or eax, 1 + 0007e 89 85 c4 00 00 + 00 mov DWORD PTR $T1[rbp], eax +$LN2@basic_ofst: + 00084 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0008b 48 83 c0 08 add rax, 8 + 0008f 48 8b c8 mov rcx, rax + 00092 e8 00 00 00 00 call ??$addressof@V?$basic_filebuf@DU?$char_traits@D@std@@@std@@@std@@YAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@0@AEAV10@@Z ; std::addressof > > + 00097 45 33 c9 xor r9d, r9d + 0009a 45 33 c0 xor r8d, r8d + 0009d 48 8b d0 mov rdx, rax + 000a0 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000a7 ff 15 00 00 00 + 00 call QWORD PTR __imp_??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z + 000ad 90 npad 1 + 000ae 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[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 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c3 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_7?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ + 000ca 48 89 14 01 mov QWORD PTR [rcx+rax], rdx + 000ce 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000d5 48 8b 00 mov rax, QWORD PTR [rax] + 000d8 48 63 40 04 movsxd rax, DWORD PTR [rax+4] + 000dc 48 2d a8 00 00 + 00 sub rax, 168 ; 000000a8H + 000e2 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000e9 48 8b 09 mov rcx, QWORD PTR [rcx] + 000ec 48 63 49 04 movsxd rcx, DWORD PTR [rcx+4] + 000f0 48 8b 95 00 01 + 00 00 mov rdx, QWORD PTR this$[rbp] + 000f7 89 44 0a fc mov DWORD PTR [rdx+rcx-4], eax + 000fb 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00102 48 83 c0 08 add rax, 8 + 00106 48 8b c8 mov rcx, rax + 00109 e8 00 00 00 00 call ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_filebuf >::basic_filebuf > + 0010e 90 npad 1 + 0010f 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00116 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 0011d 5f pop rdi + 0011e 5d pop rbp + 0011f c3 ret 0 +??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ ENDP ; std::basic_ofstream >::basic_ofstream > +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +$T1 = 196 +this$ = 256 +$initVBases$ = 264 +?dtor$0@?0???0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA PROC ; `std::basic_ofstream >::basic_ofstream >'::`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 8b 85 c4 00 00 + 00 mov eax, DWORD PTR $T1[rbp] + 0001a 83 e0 01 and eax, 1 + 0001d 85 c0 test eax, eax + 0001f 74 1b je SHORT $LN5@dtor$0 + 00021 83 a5 c4 00 00 + 00 fe and DWORD PTR $T1[rbp], -2 + 00028 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0002f 48 81 c1 a8 00 + 00 00 add rcx, 168 ; 000000a8H + 00036 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ +$LN5@dtor$0: + 0003c 48 83 c4 28 add rsp, 40 ; 00000028H + 00040 5f pop rdi + 00041 5d pop rbp + 00042 c3 ret 0 +?dtor$0@?0???0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA ENDP ; `std::basic_ofstream >::basic_ofstream >'::`1'::dtor$0 +text$x ENDS +; COMDAT text$x +text$x SEGMENT +$T1 = 196 +this$ = 256 +$initVBases$ = 264 +?dtor$1@?0???0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA PROC ; `std::basic_ofstream >::basic_ofstream >'::`1'::dtor$1 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0001b 48 83 c1 10 add rcx, 16 + 0001f ff 15 00 00 00 + 00 call QWORD PTR __imp_??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ + 00025 48 83 c4 28 add rsp, 40 ; 00000028H + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 +?dtor$1@?0???0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA ENDP ; `std::basic_ofstream >::basic_ofstream >'::`1'::dtor$1 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +$T1 = 196 +this$ = 256 +$initVBases$ = 264 +?dtor$0@?0???0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA PROC ; `std::basic_ofstream >::basic_ofstream >'::`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 8b 85 c4 00 00 + 00 mov eax, DWORD PTR $T1[rbp] + 0001a 83 e0 01 and eax, 1 + 0001d 85 c0 test eax, eax + 0001f 74 1b je SHORT $LN5@dtor$0 + 00021 83 a5 c4 00 00 + 00 fe and DWORD PTR $T1[rbp], -2 + 00028 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0002f 48 81 c1 a8 00 + 00 00 add rcx, 168 ; 000000a8H + 00036 ff 15 00 00 00 + 00 call QWORD PTR __imp_??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ +$LN5@dtor$0: + 0003c 48 83 c4 28 add rsp, 40 ; 00000028H + 00040 5f pop rdi + 00041 5d pop rbp + 00042 c3 ret 0 +?dtor$0@?0???0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA ENDP ; `std::basic_ofstream >::basic_ofstream >'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +$T1 = 196 +this$ = 256 +$initVBases$ = 264 +?dtor$1@?0???0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA PROC ; `std::basic_ofstream >::basic_ofstream >'::`1'::dtor$1 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0001b 48 83 c1 10 add rcx, 16 + 0001f ff 15 00 00 00 + 00 call QWORD PTR __imp_??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ + 00025 48 83 c4 28 add rsp, 40 ; 00000028H + 00029 5f pop rdi + 0002a 5d pop rbp + 0002b c3 ret 0 +?dtor$1@?0???0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ@4HA ENDP ; `std::basic_ofstream >::basic_ofstream >'::`1'::dtor$1 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp +; COMDAT ?PutToFile@@YAXPEAXK@Z +_TEXT SEGMENT +fout$ = 16 +__$ArrayPad$ = 488 +Buffer$ = 528 +BufferSize$ = 536 +?PutToFile@@YAXPEAXK@Z PROC ; PutToFile, COMDAT + +; 21 : { + +$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 18 02 + 00 00 sub rsp, 536 ; 00000218H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b fc mov rdi, rsp + 0001a b9 86 00 00 00 mov ecx, 134 ; 00000086H + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 38 + 02 00 00 mov rcx, QWORD PTR [rsp+568] + 0002e 48 8b 05 00 00 + 00 00 mov rax, QWORD PTR __security_cookie + 00035 48 33 c5 xor rax, rbp + 00038 48 89 85 e8 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4031338C_Main@cpp + 00046 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 22 : std::ofstream fout; + + 0004b ba 08 01 00 00 mov edx, 264 ; 00000108H + 00050 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] + 00054 e8 00 00 00 00 call ?__autoclassinit2@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAX_K@Z + 00059 ba 01 00 00 00 mov edx, 1 + 0005e 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] + 00062 e8 00 00 00 00 call ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ ; std::basic_ofstream >::basic_ofstream > + 00067 90 npad 1 + +; 23 : fout.open("C:\\Users\\Iizerd\\Desktop\\Leeg Hake\\Test.m", std::ios::binary | std::ios::out); + + 00068 41 b9 40 00 00 + 00 mov r9d, 64 ; 00000040H + 0006e 41 b8 22 00 00 + 00 mov r8d, 34 ; 00000022H + 00074 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0CJ@GEFBLICI@C?3?2Users?2Iizerd?2Desktop?2Leeg?5Ha@ + 0007b 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] + 0007f e8 00 00 00 00 call ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDHH@Z ; std::basic_ofstream >::open + +; 24 : fout.write((PCHAR)Buffer, BufferSize); + + 00084 8b 85 18 02 00 + 00 mov eax, DWORD PTR BufferSize$[rbp] + 0008a 44 8b c0 mov r8d, eax + 0008d 48 8b 95 10 02 + 00 00 mov rdx, QWORD PTR Buffer$[rbp] + 00094 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] + 00098 ff 15 00 00 00 + 00 call QWORD PTR __imp_?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_J@Z + +; 25 : fout.close(); + + 0009e 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] + 000a2 e8 00 00 00 00 call ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ ; std::basic_ofstream >::close + 000a7 90 npad 1 + +; 26 : } + + 000a8 48 8d 4d 10 lea rcx, QWORD PTR fout$[rbp] + 000ac e8 00 00 00 00 call ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ + 000b1 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000b5 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?PutToFile@@YAXPEAXK@Z$rtcFrameData + 000bc e8 00 00 00 00 call _RTC_CheckStackVars + 000c1 48 8b 8d e8 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 000c8 48 33 cd xor rcx, rbp + 000cb e8 00 00 00 00 call __security_check_cookie + 000d0 48 8d a5 f8 01 + 00 00 lea rsp, QWORD PTR [rbp+504] + 000d7 5f pop rdi + 000d8 5d pop rbp + 000d9 c3 ret 0 +?PutToFile@@YAXPEAXK@Z ENDP ; PutToFile +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +fout$ = 16 +__$ArrayPad$ = 488 +Buffer$ = 528 +BufferSize$ = 536 +?dtor$0@?0??PutToFile@@YAXPEAXK@Z@4HA PROC ; `PutToFile'::`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 10 lea rcx, QWORD PTR fout$[rbp] + 00018 e8 00 00 00 00 call ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ + 0001d 48 83 c4 28 add rsp, 40 ; 00000028H + 00021 5f pop rdi + 00022 5d pop rbp + 00023 c3 ret 0 +?dtor$0@?0??PutToFile@@YAXPEAXK@Z@4HA ENDP ; `PutToFile'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +fout$ = 16 +__$ArrayPad$ = 488 +Buffer$ = 528 +BufferSize$ = 536 +?dtor$0@?0??PutToFile@@YAXPEAXK@Z@4HA PROC ; `PutToFile'::`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 10 lea rcx, QWORD PTR fout$[rbp] + 00018 e8 00 00 00 00 call ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ + 0001d 48 83 c4 28 add rsp, 40 ; 00000028H + 00021 5f pop rdi + 00022 5d pop rbp + 00023 c3 ret 0 +?dtor$0@?0??PutToFile@@YAXPEAXK@Z@4HA ENDP ; `PutToFile'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp +; COMDAT ?MakeExecutableBuffer@@YAPEAXPEAXK@Z +_TEXT SEGMENT +ExecBuffer$ = 8 +Buffer$ = 256 +BufferSize$ = 264 +?MakeExecutableBuffer@@YAPEAXPEAXK@Z PROC ; MakeExecutableBuffer, COMDAT + +; 13 : { + +$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 + +; 14 : PVOID ExecBuffer = VirtualAlloc(nullptr, BufferSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE); + + 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 + +; 15 : if (!ExecBuffer) + + 0005a 48 83 7d 08 00 cmp QWORD PTR ExecBuffer$[rbp], 0 + 0005f 75 04 jne SHORT $LN2@MakeExecut + +; 16 : return NULL; + + 00061 33 c0 xor eax, eax + 00063 eb 19 jmp SHORT $LN1@MakeExecut +$LN2@MakeExecut: + +; 17 : RtlCopyMemory(ExecBuffer, Buffer, BufferSize); + + 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: + +; 18 : } + + 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 +_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 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 + 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 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 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 +; 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 { + +$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:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1344 : return *this; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + +; 1345 : } + + 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 +?_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 +; 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 { + +$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:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1732 : return _Mypair._Get_first(); + + 00036 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 + +; 1733 : } + + 00046 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 +?_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 +; 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 + +; 1685 : 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 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 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + +; 1687 : 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 + +; 1688 : 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 + +; 1689 : 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 + +; 1690 : +; 1691 : _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 + +; 1692 : +; 1693 : 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 + 00 je $LN2@Tidy + +; 1694 : _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 + 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 + +; 1695 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); + + 00096 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 + 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 + 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 + 00 00 mov QWORD PTR tv86[rbp], rax + 000d3 4c 8b 85 40 01 + 00 00 mov r8, QWORD PTR tv88[rbp] + 000da 48 8b 95 48 01 + 00 00 mov rdx, QWORD PTR tv86[rbp] + 000e1 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 + +; 1696 : +; 1697 : _Myfirst = pointer(); + + 000ed 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000f1 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + +; 1698 : _Mylast = pointer(); + + 000f8 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 000fc 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + +; 1699 : _Myend = pointer(); + + 00103 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 00107 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 +$LN2@Tidy: + +; 1700 : } +; 1701 : } + + 0010e 48 8d a5 58 01 + 00 00 lea rsp, QWORD PTR [rbp+344] + 00115 5f pop rdi + 00116 5d pop rbp + 00117 c3 ret 0 +?_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 +; 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 + +; 1611 : void _Destroy(pointer _First, pointer _Last) { // destroy [_First, _Last) using allocator + +$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:__BF2A7ACC_vector + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1612 : _Destroy_range(_First, _Last, _Getal()); + + 00040 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 + 00 00 mov rdx, QWORD PTR _Last$[rbp] + 00056 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 > + +; 1613 : } + + 00062 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 +?_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 +; COMDAT ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ +_TEXT SEGMENT +_Alproxy$ = 8 +$S1$ = 36 +$T4 = 260 +__$ArrayPad$ = 280 +this$ = 320 +??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::vector >::~vector >, COMDAT + +; 672 : ~vector() noexcept { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 48 01 + 00 00 sub rsp, 328 ; 00000148H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 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 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 + 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 + +; 673 : _Tidy(); + + 00047 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 + +; 674 : #if _ITERATOR_DEBUG_LEVEL != 0 +; 675 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); + + 00053 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 + +; 676 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); + + 00073 48 c7 85 04 01 + 00 00 00 00 00 + 00 mov QWORD PTR $T4[rbp], 0 + 0007e 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00085 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 > + +; 677 : #endif // _ITERATOR_DEBUG_LEVEL != 0 +; 678 : } + + 000a0 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000a4 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 + 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 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000c7 5f pop rdi + 000c8 5d pop rbp + 000c9 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 +; 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 + +; 801 : void deallocate(_Ty* const _Ptr, const size_t _Count) { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 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 + 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 + 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> + +; 804 : } + + 0005a 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 +?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 +; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 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 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 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 + +; 178 : +; 179 : 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 + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 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")); + + 000b1 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 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 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 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 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 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 + 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 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 +??$_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 +; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 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 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 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 + +; 178 : +; 179 : 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 + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 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")); + + 000b1 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 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 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 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 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 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 + 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 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 +??$_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\fstream +; COMDAT ??$_Ungetc@D@std@@YA_NAEBDPEAU_iobuf@@@Z +_TEXT SEGMENT +tv69 = 192 +_Byte$ = 240 +_File$ = 248 +??$_Ungetc@D@std@@YA_NAEBDPEAU_iobuf@@@Z PROC ; std::_Ungetc, COMDAT + +; 129 : inline bool _Ungetc(const char& _Byte, FILE* _File) { // put back a char element to a C stream + +$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 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:__88EC1446_fstream + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 130 : return _CSTD ungetc(static_cast(_Byte), _File) != EOF; + + 0003b 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Byte$[rbp] + 00042 0f b6 00 movzx eax, BYTE PTR [rax] + 00045 48 8b 95 f8 00 + 00 00 mov rdx, QWORD PTR _File$[rbp] + 0004c 8b c8 mov ecx, eax + 0004e ff 15 00 00 00 + 00 call QWORD PTR __imp_ungetc + 00054 83 f8 ff cmp eax, -1 + 00057 74 0c je SHORT $LN3@Ungetc + 00059 c7 85 c0 00 00 + 00 01 00 00 00 mov DWORD PTR tv69[rbp], 1 + 00063 eb 0a jmp SHORT $LN4@Ungetc +$LN3@Ungetc: + 00065 c7 85 c0 00 00 + 00 00 00 00 00 mov DWORD PTR tv69[rbp], 0 +$LN4@Ungetc: + 0006f 0f b6 85 c0 00 + 00 00 movzx eax, BYTE PTR tv69[rbp] + +; 131 : } + + 00076 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 0007d 5f pop rdi + 0007e 5d pop rbp + 0007f c3 ret 0 +??$_Ungetc@D@std@@YA_NAEBDPEAU_iobuf@@@Z ENDP ; std::_Ungetc +_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\fstream +; COMDAT ??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z +_TEXT SEGMENT +tv69 = 192 +_Byte$ = 240 +_File$ = 248 +??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z PROC ; std::_Fputc, COMDAT + +; 106 : inline bool _Fputc(char _Byte, FILE* _File) { // put a char element to a C stream + +$LN5: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 88 4c 24 08 mov BYTE PTR [rsp+8], cl + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec f8 00 + 00 00 sub rsp, 248 ; 000000f8H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 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 0f b6 8c 24 18 + 01 00 00 movzx ecx, BYTE PTR [rsp+280] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__88EC1446_fstream + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 107 : return _CSTD fputc(_Byte, _File) != EOF; + + 0003a 0f be 85 f0 00 + 00 00 movsx eax, BYTE PTR _Byte$[rbp] + 00041 48 8b 95 f8 00 + 00 00 mov rdx, QWORD PTR _File$[rbp] + 00048 8b c8 mov ecx, eax + 0004a ff 15 00 00 00 + 00 call QWORD PTR __imp_fputc + 00050 83 f8 ff cmp eax, -1 + 00053 74 0c je SHORT $LN3@Fputc + 00055 c7 85 c0 00 00 + 00 01 00 00 00 mov DWORD PTR tv69[rbp], 1 + 0005f eb 0a jmp SHORT $LN4@Fputc +$LN3@Fputc: + 00061 c7 85 c0 00 00 + 00 00 00 00 00 mov DWORD PTR tv69[rbp], 0 +$LN4@Fputc: + 0006b 0f b6 85 c0 00 + 00 00 movzx eax, BYTE PTR tv69[rbp] + +; 108 : } + + 00072 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 +??$_Fputc@D@std@@YA_NDPEAU_iobuf@@@Z ENDP ; std::_Fputc +_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\fstream +; COMDAT ??$_Fgetc@D@std@@YA_NAEADPEAU_iobuf@@@Z +_TEXT SEGMENT +_Meta$ = 4 +_Byte$ = 256 +_File$ = 264 +??$_Fgetc@D@std@@YA_NAEADPEAU_iobuf@@@Z PROC ; std::_Fgetc, COMDAT + +; 65 : inline bool _Fgetc(char& _Byte, FILE* _File) { // get a char element from a C stream + +$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 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:__88EC1446_fstream + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 66 : int _Meta; +; 67 : if ((_Meta = _CSTD fgetc(_File)) == EOF) { + + 0003b 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _File$[rbp] + 00042 ff 15 00 00 00 + 00 call QWORD PTR __imp_fgetc + 00048 89 45 04 mov DWORD PTR _Meta$[rbp], eax + 0004b 83 7d 04 ff cmp DWORD PTR _Meta$[rbp], -1 + 0004f 75 06 jne SHORT $LN2@Fgetc + +; 68 : return false; + + 00051 32 c0 xor al, al + 00053 eb 11 jmp SHORT $LN1@Fgetc + +; 69 : } else { // got one, convert to char + + 00055 eb 0f jmp SHORT $LN3@Fgetc +$LN2@Fgetc: + +; 70 : _Byte = static_cast(_Meta); + + 00057 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR _Byte$[rbp] + 0005e 0f b6 4d 04 movzx ecx, BYTE PTR _Meta$[rbp] + 00062 88 08 mov BYTE PTR [rax], cl + +; 71 : return true; + + 00064 b0 01 mov al, 1 +$LN3@Fgetc: +$LN1@Fgetc: + +; 72 : } +; 73 : } + + 00066 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 0006d 5f pop rdi + 0006e 5d pop rbp + 0006f c3 ret 0 +??$_Fgetc@D@std@@YA_NAEADPEAU_iobuf@@@Z ENDP ; std::_Fgetc +_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 +; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptrnext$1 = 72 +_Ptr$ = 320 +__formal$ = 328 +__formal$ = 336 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { + +$LN7: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 58 01 + 00 00 sub rsp, 344 ; 00000158H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 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 + 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 + 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 + 00 call QWORD PTR __imp__calloc_dbg + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 568 : +; 569 : if (!_Ptrdest) { + + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr + +; 570 : _Xbad_alloc(); + + 00082 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) { + + 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 +$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 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 000ae 48 ff c0 inc rax + 000b1 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 + +; 574 : *_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 + 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 + +; 575 : } + + 000cf eb c0 jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 576 : +; 577 : return _Ptrdest; + + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN6@Maklocstr: + +; 578 : } + + 000d5 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 +??$_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 +; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptr$ = 288 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z PROC ; std::_Maklocwcs, COMDAT + +; 90 : inline wchar_t* _Maklocwcs(const wchar_t* _Ptr) { // copy NTWCS to allocated storage + +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 38 01 + 00 00 sub rsp, 312 ; 00000138H + 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00013 48 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 + +; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; + + 00036 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0003d 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 + +; 92 : +; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 0004a 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 + 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 + 00 call QWORD PTR __imp__calloc_dbg + 00073 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 + +; 96 : _Xbad_alloc(); + + 0007e 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 + 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 + +; 100 : return _Ptrdest; + + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN3@Maklocwcs: + +; 101 : } + + 0009b 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 +?_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\iosfwd +; COMDAT ??B?$fpos@U_Mbstatet@@@std@@QEBA_JXZ +_TEXT SEGMENT +this$ = 224 +??B?$fpos@U_Mbstatet@@@std@@QEBA_JXZ PROC ; std::fpos<_Mbstatet>::operator __int64, COMDAT + +; 67 : operator streamoff() 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 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:__3E6EDFAA_iosfwd + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 68 : // TRANSITION, ABI: We currently always set _Fpos to 0 but older .objs containing old +; 69 : // basic_filebuf would set _Fpos. +; 70 : return _Myoff + _Fpos; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 8b 00 mov rax, QWORD PTR [rax] + 00040 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00047 48 03 41 08 add rax, QWORD PTR [rcx+8] + +; 71 : } + + 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 +??B?$fpos@U_Mbstatet@@@std@@QEBA_JXZ ENDP ; std::fpos<_Mbstatet>::operator __int64 +_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\iosfwd +; COMDAT ?state@?$fpos@U_Mbstatet@@@std@@QEBA?AU_Mbstatet@@XZ +_TEXT SEGMENT +this$ = 224 +__$ReturnUdt$ = 232 +?state@?$fpos@U_Mbstatet@@@std@@QEBA?AU_Mbstatet@@XZ PROC ; std::fpos<_Mbstatet>::state, COMDAT + +; 59 : _NODISCARD _Statetype state() const { + +$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 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:__3E6EDFAA_iosfwd + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 60 : return _Mystate; + + 0003b 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 00046 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] + 0004d 48 89 01 mov QWORD PTR [rcx], rax + 00050 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] + +; 61 : } + + 00057 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 +?state@?$fpos@U_Mbstatet@@@std@@QEBA?AU_Mbstatet@@XZ ENDP ; std::fpos<_Mbstatet>::state +_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\iosfwd +; COMDAT ??0?$fpos@U_Mbstatet@@@std@@QEAA@U_Mbstatet@@_J@Z +_TEXT SEGMENT +this$ = 224 +_State$ = 232 +_Fileposition$ = 240 +??0?$fpos@U_Mbstatet@@@std@@QEAA@U_Mbstatet@@_J@Z PROC ; std::fpos<_Mbstatet>::fpos<_Mbstatet>, COMDAT + +; 57 : fpos(_Statetype _State, fpos_t _Fileposition) : _Myoff(_Fileposition), _Fpos(0), _Mystate(_State) {} + +$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:__3E6EDFAA_iosfwd + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00047 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR _Fileposition$[rbp] + 0004e 48 89 08 mov QWORD PTR [rax], rcx + 00051 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00058 48 c7 40 08 00 + 00 00 00 mov QWORD PTR [rax+8], 0 + 00060 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00067 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _State$[rbp] + 0006e 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00072 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00079 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00080 5f pop rdi + 00081 5d pop rbp + 00082 c3 ret 0 +??0?$fpos@U_Mbstatet@@@std@@QEAA@U_Mbstatet@@_J@Z ENDP ; std::fpos<_Mbstatet>::fpos<_Mbstatet> +_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\iosfwd +; COMDAT ??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z +_TEXT SEGMENT +this$ = 224 +_Off$ = 232 +??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z PROC ; std::fpos<_Mbstatet>::fpos<_Mbstatet>, COMDAT + +; 55 : /* implicit */ fpos(streamoff _Off = 0) : _Myoff(_Off), _Fpos(0), _Mystate() {} + +$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 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:__3E6EDFAA_iosfwd + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Off$[rbp] + 00049 48 89 08 mov QWORD PTR [rax], rcx + 0004c 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00053 48 c7 40 08 00 + 00 00 00 mov QWORD PTR [rax+8], 0 + 0005b 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00062 48 83 c0 10 add rax, 16 + 00066 48 8b f8 mov rdi, rax + 00069 33 c0 xor eax, eax + 0006b b9 08 00 00 00 mov ecx, 8 + 00070 f3 aa rep stosb + 00072 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00079 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00080 5f pop rdi + 00081 5d pop rbp + 00082 c3 ret 0 +??0?$fpos@U_Mbstatet@@@std@@QEAA@_J@Z ENDP ; std::fpos<_Mbstatet>::fpos<_Mbstatet> +_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 +; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Count1$ = 40 +_Wchars$ = 72 +_Ptr1$ = 104 +_Bytes$ = 132 +_Wc$ = 164 +_Mbst1$ = 200 +_Ptrdest$ = 232 +_Ptrnext$ = 264 +_Mbst2$ = 296 +__$ArrayPad$ = 504 +_Ptr$ = 544 +__formal$ = 552 +_Cvt$ = 560 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { + +$LN12: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 38 02 + 00 00 sub rsp, 568 ; 00000238H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 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 + 02 00 00 mov rcx, QWORD PTR [rsp+600] + 00034 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 + 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 + 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 + +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; + + 00064 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 + +; 592 : 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 + 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 + 00087 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 +$LN2@Maklocstr: + 00094 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 + 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 +$LN4@Maklocstr: + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr + +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { + + 000d0 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 + 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 + 00 00 lea rcx, QWORD PTR _Wc$[rbp] + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 000fd 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 00104 7f 02 jg SHORT $LN8@Maklocstr + +; 594 : break; + + 00106 eb 02 jmp SHORT $LN3@Maklocstr +$LN8@Maklocstr: + +; 595 : } +; 596 : } + + 00108 eb 8a jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 597 : +; 598 : ++_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 + +; 599 : +; 600 : 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 + 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 + 00 call QWORD PTR __imp__calloc_dbg + 00139 48 89 85 e8 00 + 00 00 mov QWORD PTR _Ptrdest$[rbp], rax + +; 601 : +; 602 : if (!_Ptrdest) { + + 00140 48 83 bd e8 00 + 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00148 75 05 jne SHORT $LN9@Maklocstr + +; 603 : _Xbad_alloc(); + + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN9@Maklocstr: + +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; + + 0014f 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] + 00156 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax + +; 607 : mbstate_t _Mbst2 = {}; + + 0015d 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 + +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { + + 00170 eb 4d jmp SHORT $LN7@Maklocstr +$LN5@Maklocstr: + 00172 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 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0018e 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 + 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 + 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] + 001b4 48 83 c0 02 add rax, 2 + 001b8 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 + +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { + + 001c6 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 + 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 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 001e4 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 + 00 mov DWORD PTR _Bytes$[rbp], eax + 001f6 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 001fd 7f 02 jg SHORT $LN10@Maklocstr + +; 611 : break; + + 001ff eb 05 jmp SHORT $LN6@Maklocstr +$LN10@Maklocstr: + +; 612 : } +; 613 : } + + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr +$LN6@Maklocstr: + +; 614 : +; 615 : *_Ptrnext = L'\0'; + + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 0020f 66 89 01 mov WORD PTR [rcx], ax + +; 616 : +; 617 : return _Ptrdest; + + 00212 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN11@Maklocstr: + +; 618 : } + + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 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 + 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 + 00 00 lea rsp, QWORD PTR [rbp+520] + 00245 5f pop rdi + 00246 5d pop rbp + 00247 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\xlocale +; COMDAT ?_Getfacet@locale@std@@QEBAPEBVfacet@12@_K@Z +_TEXT SEGMENT +_Facptr$ = 8 +_Ptr0$ = 40 +tv71 = 248 +this$ = 288 +_Id$ = 296 +?_Getfacet@locale@std@@QEBAPEBVfacet@12@_K@Z PROC ; std::locale::_Getfacet, COMDAT + +; 373 : const facet* _Getfacet(size_t _Id) const { // look up a facet in locale object + +$LN8: + 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 + 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:__0E648B51_xlocale + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 374 : const facet* _Facptr = _Id < _Ptr->_Facetcount ? _Ptr->_Facetvec[_Id] : nullptr; // null if id off end + + 0003b 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00046 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 0004a 48 39 85 28 01 + 00 00 cmp QWORD PTR _Id$[rbp], rax + 00051 73 23 jae SHORT $LN6@Getfacet + 00053 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005a 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0005e 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 00062 48 8b 8d 28 01 + 00 00 mov rcx, QWORD PTR _Id$[rbp] + 00069 48 8b 04 c8 mov rax, QWORD PTR [rax+rcx*8] + 0006d 48 89 85 f8 00 + 00 00 mov QWORD PTR tv71[rbp], rax + 00074 eb 0b jmp SHORT $LN7@Getfacet +$LN6@Getfacet: + 00076 48 c7 85 f8 00 + 00 00 00 00 00 + 00 mov QWORD PTR tv71[rbp], 0 +$LN7@Getfacet: + 00081 48 8b 85 f8 00 + 00 00 mov rax, QWORD PTR tv71[rbp] + 00088 48 89 45 08 mov QWORD PTR _Facptr$[rbp], rax + +; 375 : if (_Facptr || !_Ptr->_Xparent) { + + 0008c 48 83 7d 08 00 cmp QWORD PTR _Facptr$[rbp], 0 + 00091 75 13 jne SHORT $LN3@Getfacet + 00093 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0009a 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0009e 0f b6 40 24 movzx eax, BYTE PTR [rax+36] + 000a2 85 c0 test eax, eax + 000a4 75 06 jne SHORT $LN2@Getfacet +$LN3@Getfacet: + +; 376 : return _Facptr; // found facet or not transparent + + 000a6 48 8b 45 08 mov rax, QWORD PTR _Facptr$[rbp] + 000aa eb 31 jmp SHORT $LN1@Getfacet +$LN2@Getfacet: + +; 377 : } +; 378 : +; 379 : // look in current locale +; 380 : locale::_Locimp* _Ptr0 = _Getgloballocale(); + + 000ac e8 00 00 00 00 call ?_Getgloballocale@locale@std@@CAPEAV_Locimp@12@XZ ; std::locale::_Getgloballocale + 000b1 48 89 45 28 mov QWORD PTR _Ptr0$[rbp], rax + +; 381 : if (_Id < _Ptr0->_Facetcount) { + + 000b5 48 8b 45 28 mov rax, QWORD PTR _Ptr0$[rbp] + 000b9 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 000bd 48 39 85 28 01 + 00 00 cmp QWORD PTR _Id$[rbp], rax + 000c4 73 15 jae SHORT $LN4@Getfacet + +; 382 : return _Ptr0->_Facetvec[_Id]; // get from current locale + + 000c6 48 8b 45 28 mov rax, QWORD PTR _Ptr0$[rbp] + 000ca 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 000ce 48 8b 8d 28 01 + 00 00 mov rcx, QWORD PTR _Id$[rbp] + 000d5 48 8b 04 c8 mov rax, QWORD PTR [rax+rcx*8] + 000d9 eb 02 jmp SHORT $LN1@Getfacet +$LN4@Getfacet: + +; 383 : } +; 384 : +; 385 : return nullptr; // no entry in current locale + + 000db 33 c0 xor eax, eax +$LN1@Getfacet: + +; 386 : } + + 000dd 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000e4 5f pop rdi + 000e5 5d pop rbp + 000e6 c3 ret 0 +?_Getfacet@locale@std@@QEBAPEBVfacet@12@_K@Z ENDP ; std::locale::_Getfacet _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale +; COMDAT ??1locale@std@@QEAA@XZ _TEXT SEGMENT -_Al$ = 224 -_Ptr$ = 232 -_Count$ = 240 -?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z PROC ; std::_Default_allocator_traits >::deallocate, COMDAT +$T1 = 200 +tv85 = 216 +tv86 = 224 +this$ = 272 +??1locale@std@@QEAA@XZ PROC ; std::locale::~locale, COMDAT -; 693 : static _CONSTEXPR20_DYNALLOC void deallocate(_Alloc& _Al, const pointer _Ptr, const size_type _Count) { +; 350 : ~locale() 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 - -; 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> +$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 18 01 + 00 00 sub rsp, 280 ; 00000118H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 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:__0E648B51_xlocale + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 351 : if (_Ptr) { + + 00036 48 8b 85 10 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00042 74 67 je SHORT $LN2@locale -; 703 : } -; 704 : } +; 352 : delete _Ptr->_Decref(); - 00040 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 00047 5f pop rdi - 00048 5d pop rbp - 00049 c3 ret 0 -?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z ENDP ; std::_Default_allocator_traits >::deallocate + 00044 48 8b 85 10 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004b 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0004f 48 8b 8d 10 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00056 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 0005a 48 8b 00 mov rax, QWORD PTR [rax] + 0005d ff 50 10 call QWORD PTR [rax+16] + 00060 48 89 85 c8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 00067 48 83 bd c8 00 + 00 00 00 cmp QWORD PTR $T1[rbp], 0 + 0006f 74 2f je SHORT $LN4@locale + 00071 48 8b 85 c8 00 + 00 00 mov rax, QWORD PTR $T1[rbp] + 00078 48 8b 00 mov rax, QWORD PTR [rax] + 0007b 48 8b 00 mov rax, QWORD PTR [rax] + 0007e 48 89 85 d8 00 + 00 00 mov QWORD PTR tv85[rbp], rax + 00085 ba 01 00 00 00 mov edx, 1 + 0008a 48 8b 8d c8 00 + 00 00 mov rcx, QWORD PTR $T1[rbp] + 00091 ff 95 d8 00 00 + 00 call QWORD PTR tv85[rbp] + 00097 48 89 85 e0 00 + 00 00 mov QWORD PTR tv86[rbp], rax + 0009e eb 0b jmp SHORT $LN2@locale +$LN4@locale: + 000a0 48 c7 85 e0 00 + 00 00 00 00 00 + 00 mov QWORD PTR tv86[rbp], 0 +$LN2@locale: + +; 353 : } +; 354 : } + + 000ab 48 8d a5 f8 00 + 00 00 lea rsp, QWORD PTR [rbp+248] + 000b2 5f pop rdi + 000b3 5d pop rbp + 000b4 c3 ret 0 +??1locale@std@@QEAA@XZ ENDP ; std::locale::~locale _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\typeinfo +; COMDAT ?_Throw_bad_cast@std@@YAXXZ _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 +$T1 = 200 +?_Throw_bad_cast@std@@YAXXZ PROC ; std::_Throw_bad_cast, COMDAT -; 985 : _CONSTEXPR20_DYNALLOC void _Deallocate_plain(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { +; 64 : [[noreturn]] inline void _Throw_bad_cast() { +$LN3: + 00000 40 55 push rbp + 00002 57 push rdi + 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:__33FB35AA_typeinfo + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 65 : _THROW(bad_cast{}); + + 0002a 48 8d 8d c8 00 + 00 00 lea rcx, QWORD PTR $T1[rbp] + 00031 e8 00 00 00 00 call ??0bad_cast@std@@QEAA@XZ ; std::bad_cast::bad_cast + 00036 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:_TI2?AVbad_cast@std@@ + 0003d 48 8d 8d c8 00 + 00 00 lea rcx, QWORD PTR $T1[rbp] + 00044 e8 00 00 00 00 call _CxxThrowException +$LN2@Throw_bad_: + +; 66 : } + + 00049 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 +?_Throw_bad_cast@std@@YAXXZ ENDP ; std::_Throw_bad_cast +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ??_Gbad_cast@std@@UEAAPEAXI@Z +_TEXT SEGMENT +this$ = 224 +__flags$ = 232 +??_Gbad_cast@std@@UEAAPEAXI@Z PROC ; std::bad_cast::`scalar deleting destructor', COMDAT +$LN4: + 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00035 e8 00 00 00 00 call ??1bad_cast@std@@UEAA@XZ + 0003a 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete +$LN2@scalar: + 00058 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005f 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 +??_Gbad_cast@std@@UEAAPEAXI@Z ENDP ; std::bad_cast::`scalar deleting destructor' +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ??0bad_cast@std@@QEAA@AEBV01@@Z +_TEXT SEGMENT +this$ = 224 +__that$ = 232 +??0bad_cast@std@@QEAA@AEBV01@@Z PROC ; std::bad_cast::bad_cast, 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 @@ -1140,761 +14577,1395 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 + 00 00 mov rdx, QWORD PTR __that$[rbp] + 00036 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 + 00 00 mov rax, QWORD PTR this$[rbp] + 00049 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_7bad_cast@std@@6B@ + 00050 48 89 08 mov QWORD PTR [rax], rcx + 00053 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005a 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 +??0bad_cast@std@@QEAA@AEBV01@@Z ENDP ; std::bad_cast::bad_cast +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ??1bad_cast@std@@UEAA@XZ +_TEXT SEGMENT +this$ = 224 +??1bad_cast@std@@UEAA@XZ PROC ; std::bad_cast::~bad_cast, 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 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 + 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 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0003d 5f pop rdi + 0003e 5d pop rbp + 0003f c3 ret 0 +??1bad_cast@std@@UEAA@XZ ENDP ; std::bad_cast::~bad_cast +_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_typeinfo.h +; COMDAT ??0bad_cast@std@@QEAA@XZ +_TEXT SEGMENT +this$ = 224 +??0bad_cast@std@@QEAA@XZ PROC ; std::bad_cast::bad_cast, COMDAT -; 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); +; 135 : { - 00024 41 b8 01 00 00 +$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:__FB364CBD_vcruntime_typeinfo@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 134 : : exception("bad cast", 1) + + 00036 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 + 0003c 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_08EPJLHIJG@bad?5cast@ + 00043 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0004a e8 00 00 00 00 call ??0exception@std@@QEAA@QEBDH@Z ; std::exception::exception + +; 135 : { + + 0004f 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00056 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_7bad_cast@std@@6B@ + 0005d 48 89 08 mov QWORD PTR [rax], rcx + +; 136 : } + + 00060 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00067 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0006e 5f pop rdi + 0006f 5d pop rbp + 00070 c3 ret 0 +??0bad_cast@std@@QEAA@XZ ENDP ; std::bad_cast::bad_cast +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ??1?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@XZ +_TEXT SEGMENT +this$ = 224 +??1?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@XZ PROC ; std::_Compressed_pair,std::_String_val >,1>::~_Compressed_pair,std::_String_val >,1>, 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 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 + 00 00 mov rax, QWORD PTR this$[rbp] + 00031 48 8b c8 mov rcx, rax + 00034 e8 00 00 00 00 call ??1?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ + 00039 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00040 5f pop rdi + 00041 5d pop rbp + 00042 c3 ret 0 +??1?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@XZ ENDP ; std::_Compressed_pair,std::_String_val >,1>::~_Compressed_pair,std::_String_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 +; COMDAT ?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ +_TEXT SEGMENT +this$ = 224 +?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ PROC ; std::_Compressed_pair,std::_String_val >,1>::_Get_first, COMDAT + +; 1347 : constexpr const _Ty1& _Get_first() const 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:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1348 : return *this; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + +; 1349 : } + + 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 +?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ ENDP ; std::_Compressed_pair,std::_String_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 +; COMDAT ?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ +_TEXT SEGMENT +this$ = 224 +?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ PROC ; std::_Compressed_pair,std::_String_val >,1>::_Get_first, COMDAT + +; 1343 : 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 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 + 00 00 mov rax, QWORD PTR this$[rbp] + +; 1345 : } + + 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 +?_Get_first@?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ ENDP ; std::_Compressed_pair,std::_String_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\xstring +; COMDAT ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ +_TEXT SEGMENT +this$ = 224 +?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ PROC ; std::basic_string,std::allocator >::_Getal, COMDAT + +; 4328 : const _Alty& _Getal() const 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:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 4329 : return _Mypair._Get_first(); + + 00036 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@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEBAAEBV?$allocator@D@2@XZ ; std::_Compressed_pair,std::_String_val >,1>::_Get_first + 00045 90 npad 1 + +; 4330 : } + + 00046 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 +?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ ENDP ; std::basic_string,std::allocator >::_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\xstring +; COMDAT ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ +_TEXT SEGMENT +this$ = 224 +?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ PROC ; std::basic_string,std::allocator >::_Getal, COMDAT + +; 4324 : _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 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:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 4325 : return _Mypair._Get_first(); + + 00036 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@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAAAEAV?$allocator@D@2@XZ ; std::_Compressed_pair,std::_String_val >,1>::_Get_first + 00045 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 : } +; 4326 : } - 0003e 48 8d a5 c8 00 + 00046 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 > + 0004d 5f pop rdi + 0004e 5d pop rbp + 0004f c3 ret 0 +?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ ENDP ; std::basic_string,std::allocator >::_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\xmemory -; COMDAT ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; COMDAT ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ _TEXT SEGMENT -_Ptr$ = 224 -_Bytes$ = 232 -??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z PROC ; std::_Deallocate<16,0>, COMDAT +_Ptr$1 = 8 +_Al$2 = 40 +$T3 = 260 +this$ = 320 +?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ PROC ; std::basic_string,std::allocator >::_Tidy_deallocate, COMDAT -; 251 : _CONSTEXPR20_DYNALLOC void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { +; 4299 : void _Tidy_deallocate() noexcept { // initialize buffer, deallocating any storage $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 + 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 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:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 261 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); +; 4300 : _Mypair._Myval2._Orphan_all(); - 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: + 00036 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 8b c8 mov rcx, rax + 00040 e8 00 00 00 00 call ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all -; 262 : } -; 263 : #endif // defined(_M_IX86) || defined(_M_X64) -; 264 : ::operator delete(_Ptr, _Bytes); +; 4301 : if (_Mypair._Myval2._Large_string_engaged()) { - 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 + 00045 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004c 48 8b c8 mov rcx, rax + 0004f e8 00 00 00 00 call ?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ ; std::_String_val >::_Large_string_engaged + 00054 0f b6 c0 movzx eax, al + 00057 85 c0 test eax, eax + 00059 74 50 je SHORT $LN2@Tidy_deall -; 265 : } -; 266 : } +; 4302 : const pointer _Ptr = _Mypair._Myval2._Bx._Ptr; - 00058 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0005f 5f pop rdi - 00060 5d pop rbp - 00061 c3 ret 0 -??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ENDP ; std::_Deallocate<16,0> -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z -_TEXT SEGMENT -_First$ = 224 -_Last$ = 232 -_Al$ = 240 -??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z PROC ; std::_Destroy_range >, COMDAT + 0005b 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00062 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00066 48 89 45 08 mov QWORD PTR _Ptr$1[rbp], rax -; 945 : _Alloc_ptr_t<_Alloc> _First, const _Alloc_ptr_t<_Alloc> _Last, _Alloc& _Al) noexcept { +; 4303 : auto& _Al = _Getal(); -$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\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 + 0006a 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00071 e8 00 00 00 00 call ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ ; std::basic_string,std::allocator >::_Getal + 00076 48 89 45 28 mov QWORD PTR _Al$2[rbp], rax -; 998 : _CONSTEXPR20_DYNALLOC void _Delete_plain_internal(_Alloc& _Al, typename _Alloc::value_type* const _Ptr) noexcept { +; 4304 : _Destroy_in_place(_Mypair._Myval2._Bx._Ptr); -$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 + 0007a 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00081 48 83 c0 08 add rax, 8 + 00085 48 8b c8 mov rcx, rax + 00088 e8 00 00 00 00 call ??$_Destroy_in_place@PEAD@std@@YAXAEAPEAD@Z ; std::_Destroy_in_place -; 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); +; 4305 : _Al.deallocate(_Ptr, _Mypair._Myval2._Myres + 1); - 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 > + 0008d 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00094 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 00098 48 ff c0 inc rax + 0009b 4c 8b c0 mov r8, rax + 0009e 48 8b 55 08 mov rdx, QWORD PTR _Ptr$1[rbp] + 000a2 48 8b 4d 28 mov rcx, QWORD PTR _Al$2[rbp] + 000a6 e8 00 00 00 00 call ?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z ; std::allocator::deallocate +$LN2@Tidy_deall: + +; 4306 : } +; 4307 : +; 4308 : _Mypair._Myval2._Mysize = 0; + + 000ab 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000b2 48 c7 40 18 00 + 00 00 00 mov QWORD PTR [rax+24], 0 -; 1003 : } +; 4309 : _Mypair._Myval2._Myres = _BUF_SIZE - 1; - 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 > + 000ba 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000c1 48 c7 40 20 0f + 00 00 00 mov QWORD PTR [rax+32], 15 + +; 4310 : // the _Traits::assign is last so the codegen doesn't think the char write can alias this +; 4311 : _Traits::assign(_Mypair._Myval2._Bx._Buf[0], _Elem()); + + 000c9 c6 85 04 01 00 + 00 00 mov BYTE PTR $T3[rbp], 0 + 000d0 b8 01 00 00 00 mov eax, 1 + 000d5 48 6b c0 00 imul rax, rax, 0 + 000d9 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000e0 48 8d 44 01 08 lea rax, QWORD PTR [rcx+rax+8] + 000e5 48 8d 95 04 01 + 00 00 lea rdx, QWORD PTR $T3[rbp] + 000ec 48 8b c8 mov rcx, rax + 000ef e8 00 00 00 00 call ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign + 000f4 90 npad 1 + +; 4312 : } + + 000f5 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000fc 5f pop rdi + 000fd 5d pop rbp + 000fe c3 ret 0 +?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ ENDP ; std::basic_string,std::allocator >::_Tidy_deallocate _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\utility -; COMDAT ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; COMDAT ?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ _TEXT SEGMENT -_Old_val$ = 8 -_Val$ = 256 -_New_val$ = 264 -??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z PROC ; std::exchange, COMDAT +$T1 = 196 +this$ = 256 +?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ PROC ; std::basic_string,std::allocator >::_Tidy_init, COMDAT -; 614 : conjunction_v, is_nothrow_assignable<_Ty&, _Other>>) /* strengthened */ { +; 4292 : void _Tidy_init() noexcept { // initialize basic_string data members $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 + 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 - 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 + 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:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 615 : // assign _New_val to _Val, return previous _Val -; 616 : _Ty _Old_val = static_cast<_Ty&&>(_Val); +; 4293 : _Mypair._Myval2._Mysize = 0; - 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 + 00036 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 c7 40 18 00 + 00 00 00 mov QWORD PTR [rax+24], 0 -; 617 : _Val = static_cast<_Other&&>(_New_val); +; 4294 : _Mypair._Myval2._Myres = _BUF_SIZE - 1; - 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 + 00045 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0004c 48 c7 40 20 0f + 00 00 00 mov QWORD PTR [rax+32], 15 -; 618 : return _Old_val; +; 4295 : // the _Traits::assign is last so the codegen doesn't think the char write can alias this +; 4296 : _Traits::assign(_Mypair._Myval2._Bx._Buf[0], _Elem()); - 00046 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] + 00054 c6 85 c4 00 00 + 00 00 mov BYTE PTR $T1[rbp], 0 + 0005b b8 01 00 00 00 mov eax, 1 + 00060 48 6b c0 00 imul rax, rax, 0 + 00064 48 8b 8d 00 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0006b 48 8d 44 01 08 lea rax, QWORD PTR [rcx+rax+8] + 00070 48 8d 95 c4 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00077 48 8b c8 mov rcx, rax + 0007a e8 00 00 00 00 call ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign + 0007f 90 npad 1 -; 619 : } +; 4297 : } - 0004a 48 8d a5 e8 00 + 00080 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 + 00087 5f pop rdi + 00088 5d pop rbp + 00089 c3 ret 0 +?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ ENDP ; std::basic_string,std::allocator >::_Tidy_init _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; COMDAT ?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@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 +tv76 = 192 +tv74 = 200 +this$ = 240 +_Requested$ = 248 +?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z PROC ; std::basic_string,std::allocator >::_Calculate_growth, COMDAT -; 829 : constexpr allocator(const allocator<_Other>&) noexcept {} +; 4213 : _NODISCARD size_type _Calculate_growth(const size_type _Requested) const noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 0000a 55 push rbp 0000b 57 push rdi - 0000c 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H + 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:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 00024 48 8b 85 e0 00 + 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 + +; 4214 : return _Calculate_growth(_Requested, _Mypair._Myval2._Myres, max_size()); + + 0003b 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00042 e8 00 00 00 00 call ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ ; std::basic_string,std::allocator >::max_size + 00047 48 89 85 c0 00 + 00 00 mov QWORD PTR tv76[rbp], rax + 0004e 48 8b 85 f0 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 + 00055 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 00059 48 89 85 c8 00 + 00 00 mov QWORD PTR tv74[rbp], rax + 00060 4c 8b 85 c0 00 + 00 00 mov r8, QWORD PTR tv76[rbp] + 00067 48 8b 95 c8 00 + 00 00 mov rdx, QWORD PTR tv74[rbp] + 0006e 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR _Requested$[rbp] + 00075 e8 00 00 00 00 call ?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z ; std::basic_string,std::allocator >::_Calculate_growth + 0007a 90 npad 1 + +; 4215 : } + + 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 +?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBA_K_K@Z ENDP ; std::basic_string,std::allocator >::_Calculate_growth _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp -; COMDAT main +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; COMDAT ?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z _TEXT SEGMENT -Block$ = 8 -NotTaken$ = 88 -Taken$ = 168 -tv135 = 420 -tv133 = 424 -__$ArrayPad$ = 432 -main PROC ; COMDAT +_Masked$ = 8 +$T4 = 232 +__$ArrayPad$ = 248 +_Requested$ = 288 +_Old$ = 296 +_Max$ = 304 +?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z PROC ; std::basic_string,std::allocator >::_Calculate_growth, COMDAT -; 44 : { +; 4200 : const size_type _Requested, const size_type _Old, const size_type _Max) noexcept { -$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 +$LN5: + 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 28 01 + 00 00 sub rsp, 296 ; 00000128H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 8b fc mov rdi, rsp + 00020 b9 4a 00 00 00 mov ecx, 74 ; 0000004aH + 00025 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 0002a f3 ab rep stosd + 0002c 48 8b 8c 24 48 + 01 00 00 mov rcx, QWORD PTR [rsp+328] + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00027 48 33 c5 xor rax, rbp - 0002a 48 89 85 b0 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 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(); + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 4201 : const size_type _Masked = _Requested | _ALLOC_MASK; + + 00051 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR _Requested$[rbp] + 00058 48 83 c8 0f or rax, 15 + 0005c 48 89 45 08 mov QWORD PTR _Masked$[rbp], rax + +; 4202 : if (_Masked > _Max) { // the mask overflows, settle for max_size() + + 00060 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR _Max$[rbp] + 00067 48 39 45 08 cmp QWORD PTR _Masked$[rbp], rax + 0006b 76 09 jbe SHORT $LN2@Calculate_ + +; 4203 : return _Max; + + 0006d 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR _Max$[rbp] + 00074 eb 68 jmp SHORT $LN1@Calculate_ +$LN2@Calculate_: + +; 4204 : } +; 4205 : +; 4206 : if (_Old > _Max - _Old / 2) { // similarly, geometric overflows + + 00076 33 d2 xor edx, edx + 00078 48 8b 85 28 01 + 00 00 mov rax, QWORD PTR _Old$[rbp] + 0007f b9 02 00 00 00 mov ecx, 2 + 00084 48 f7 f1 div rcx + 00087 48 8b 8d 30 01 + 00 00 mov rcx, QWORD PTR _Max$[rbp] + 0008e 48 2b c8 sub rcx, rax + 00091 48 8b c1 mov rax, rcx + 00094 48 39 85 28 01 + 00 00 cmp QWORD PTR _Old$[rbp], rax + 0009b 76 09 jbe SHORT $LN3@Calculate_ + +; 4207 : return _Max; + + 0009d 48 8b 85 30 01 + 00 00 mov rax, QWORD PTR _Max$[rbp] + 000a4 eb 38 jmp SHORT $LN1@Calculate_ +$LN3@Calculate_: + +; 4208 : } +; 4209 : +; 4210 : return (_STD max)(_Masked, _Old + _Old / 2); + + 000a6 33 d2 xor edx, edx + 000a8 48 8b 85 28 01 + 00 00 mov rax, QWORD PTR _Old$[rbp] + 000af b9 02 00 00 00 mov ecx, 2 + 000b4 48 f7 f1 div rcx + 000b7 48 8b 8d 28 01 + 00 00 mov rcx, QWORD PTR _Old$[rbp] + 000be 48 03 c8 add rcx, rax + 000c1 48 8b c1 mov rax, rcx + 000c4 48 89 85 e8 00 + 00 00 mov QWORD PTR $T4[rbp], rax + 000cb 48 8d 95 e8 00 + 00 00 lea rdx, QWORD PTR $T4[rbp] + 000d2 48 8d 4d 08 lea rcx, QWORD PTR _Masked$[rbp] + 000d6 e8 00 00 00 00 call ??$max@_K@std@@YAAEB_KAEB_K0@Z ; std::max + 000db 48 8b 00 mov rax, QWORD PTR [rax] +$LN1@Calculate_: + +; 4211 : } + + 000de 48 8b f8 mov rdi, rax + 000e1 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000e5 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z$rtcFrameData + 000ec e8 00 00 00 00 call _RTC_CheckStackVars + 000f1 48 8b c7 mov rax, rdi + 000f4 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 000fb 48 33 cd xor rcx, rbp + 000fe e8 00 00 00 00 call __security_check_cookie + 00103 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 0010a 5f pop rdi + 0010b 5d pop rbp + 0010c c3 ret 0 +?_Calculate_growth@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CA_K_K00@Z ENDP ; std::basic_string,std::allocator >::_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\xstring +; COMDAT ?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ +_TEXT SEGMENT +_Alloc_max$ = 8 +_Storage_max$ = 40 +$T4 = 264 +$T5 = 296 +$T6 = 328 +__$ArrayPad$ = 344 +this$ = 384 +?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ PROC ; std::basic_string,std::allocator >::max_size, COMDAT - 0003d e8 00 00 00 00 call xed_tables_init +; 3689 : _NODISCARD size_type max_size() const noexcept { -; 46 : srand(time(NULL)); +$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 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 + 01 00 00 mov rcx, QWORD PTR [rsp+424] + 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 58 01 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 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 +; 3690 : const size_type _Alloc_max = _Alty_traits::max_size(_Getal()); -; 47 : -; 48 : -; 49 : NATIVE_CODE_BLOCK Block; + 00047 48 8b 8d 80 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0004e e8 00 00 00 00 call ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBAAEBV?$allocator@D@2@XZ ; std::basic_string,std::allocator >::_Getal + 00053 48 8b c8 mov rcx, rax + 00056 e8 00 00 00 00 call ?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z ; std::_Default_allocator_traits >::max_size + 0005b 48 89 45 08 mov QWORD PTR _Alloc_max$[rbp], rax - 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 +; 3691 : const size_type _Storage_max = // can always store small string -; 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 + 0005f 48 c7 85 08 01 + 00 00 10 00 00 + 00 mov QWORD PTR $T4[rbp], 16 + 0006a 48 8d 95 08 01 + 00 00 lea rdx, QWORD PTR $T4[rbp] + 00071 48 8d 4d 08 lea rcx, QWORD PTR _Alloc_max$[rbp] + 00075 e8 00 00 00 00 call ??$max@_K@std@@YAAEB_KAEB_K0@Z ; std::max + 0007a 48 8b 00 mov rax, QWORD PTR [rax] + 0007d 48 89 45 28 mov QWORD PTR _Storage_max$[rbp], rax + +; 3692 : (_STD max)(_Alloc_max, static_cast(_BUF_SIZE)); +; 3693 : return (_STD min)(static_cast((numeric_limits::max)()), + + 00081 48 8b 45 28 mov rax, QWORD PTR _Storage_max$[rbp] + 00085 48 ff c8 dec rax + 00088 48 89 85 28 01 + 00 00 mov QWORD PTR $T5[rbp], rax + 0008f e8 00 00 00 00 call ?max@?$numeric_limits@_J@std@@SA_JXZ ; std::numeric_limits<__int64>::max + 00094 48 89 85 48 01 + 00 00 mov QWORD PTR $T6[rbp], rax + 0009b 48 8d 95 28 01 + 00 00 lea rdx, QWORD PTR $T5[rbp] + 000a2 48 8d 8d 48 01 + 00 00 lea rcx, QWORD PTR $T6[rbp] + 000a9 e8 00 00 00 00 call ??$min@_K@std@@YAAEB_KAEB_K0@Z ; std::min + 000ae 48 8b 00 mov rax, QWORD PTR [rax] + +; 3694 : _Storage_max - 1 // -1 is for null terminator and/or npos +; 3695 : ); +; 3696 : } + + 000b1 48 8b f8 mov rdi, rax + 000b4 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000b8 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ$rtcFrameData + 000bf e8 00 00 00 00 call _RTC_CheckStackVars + 000c4 48 8b c7 mov rax, rdi + 000c7 48 8b 8d 58 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 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 + 000ce 48 33 cd xor rcx, rbp + 000d1 e8 00 00 00 00 call __security_check_cookie + 000d6 48 8d a5 68 01 + 00 00 lea rsp, QWORD PTR [rbp+360] + 000dd 5f pop rdi + 000de 5d pop rbp + 000df c3 ret 0 +?max_size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ ENDP ; std::basic_string,std::allocator >::max_size _TEXT ENDS -; COMDAT text$x -text$x SEGMENT -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 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 -; COMDAT text$x -text$x SEGMENT -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 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 -; COMDAT text$x -text$x SEGMENT -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] - 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 -Block$ = 8 -NotTaken$ = 88 -Taken$ = 168 -tv135 = 420 -tv133 = 424 -__$ArrayPad$ = 432 -main$dtor$0 PROC +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; COMDAT ?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ +_TEXT SEGMENT +this$ = 224 +?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ PROC ; std::basic_string,std::allocator >::size, COMDAT + +; 3685 : _NODISCARD size_type size() const noexcept { + +$LN3: 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 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 + 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:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 3686 : return _Mypair._Myval2._Mysize; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 8b 40 18 mov rax, QWORD PTR [rax+24] + +; 3687 : } + + 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 +?size@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KXZ ENDP ; std::basic_string,std::allocator >::size +_TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT text$x -text$x SEGMENT -Block$ = 8 -NotTaken$ = 88 -Taken$ = 168 -tv135 = 420 -tv133 = 424 -__$ArrayPad$ = 432 -main$dtor$1 PROC +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; COMDAT ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ +_TEXT SEGMENT +this$ = 224 +?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ PROC ; std::basic_string,std::allocator >::data, COMDAT + +; 3676 : _NODISCARD _Ret_z_ _Elem* data() noexcept { + +$LN3: 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 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 + 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:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 3677 : return _Mypair._Myval2._Myptr(); + + 00036 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 ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ ; std::_String_val >::_Myptr + 00045 90 npad 1 + +; 3678 : } + + 00046 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 +?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAPEADXZ ENDP ; std::basic_string,std::allocator >::data +_TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT text$x -text$x SEGMENT -Block$ = 8 -NotTaken$ = 88 -Taken$ = 168 -tv135 = 420 -tv133 = 424 -__$ArrayPad$ = 432 -main$dtor$2 PROC +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; COMDAT ?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ +_TEXT SEGMENT +this$ = 224 +?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ PROC ; std::basic_string,std::allocator >::front, COMDAT + +; 3635 : _NODISCARD reference front() noexcept /* strengthened */ { + +$LN12: 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 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 + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec f8 00 + 00 00 sub rsp, 248 ; 000000f8H + 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 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:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode +$LN4@front: + +; 3636 : #if _CONTAINER_DEBUG_LEVEL > 0 +; 3637 : _STL_VERIFY(_Mypair._Myval2._Mysize != 0, "front() called on empty string"); + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 83 78 18 00 cmp QWORD PTR [rax+24], 0 + 00042 74 02 je SHORT $LN7@front + 00044 eb 6b jmp SHORT $LN9@front +$LN7@front: + 00046 48 8d 05 00 00 + 00 00 lea rax, OFFSET FLAT:??_C@_0BP@PFIPNLNI@front?$CI?$CJ?5called?5on?5empty?5string@ + 0004d 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 00052 48 8d 05 00 00 + 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ + 00059 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 0005e 45 33 c9 xor r9d, r9d + 00061 41 b8 35 0e 00 + 00 mov r8d, 3637 ; 00000e35H + 00067 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0GI@GFIDMGHH@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ + 0006e b9 02 00 00 00 mov ecx, 2 + 00073 ff 15 00 00 00 + 00 call QWORD PTR __imp__CrtDbgReport + 00079 83 f8 01 cmp eax, 1 + 0007c 75 03 jne SHORT $LN11@front + 0007e cc int 3 + 0007f 33 c0 xor eax, eax +$LN11@front: + 00081 48 c7 44 24 20 + 00 00 00 00 mov QWORD PTR [rsp+32], 0 + 0008a 41 b9 35 0e 00 + 00 mov r9d, 3637 ; 00000e35H + 00090 4c 8d 05 00 00 + 00 00 lea r8, OFFSET FLAT:??_C@_1NA@LKMCOJGD@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ + 00097 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_1LC@BJDDPGPA@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AAb?$AAa?$AAs?$AAi?$AAc?$AA_?$AAs?$AAt?$AAr?$AAi@ + 0009e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_1EC@DINNLDHA@?$AA?$CC?$AAf?$AAr?$AAo?$AAn?$AAt?$AA?$CI?$AA?$CJ?$AA?5?$AAc?$AAa?$AAl?$AAl?$AAe?$AAd@ + 000a5 ff 15 00 00 00 + 00 call QWORD PTR __imp__invalid_parameter + 000ab 33 c0 xor eax, eax + 000ad 85 c0 test eax, eax + 000af 75 95 jne SHORT $LN7@front +$LN9@front: + 000b1 33 c0 xor eax, eax + 000b3 85 c0 test eax, eax + 000b5 0f 85 7b ff ff + ff jne $LN4@front + +; 3638 : #endif // _CONTAINER_DEBUG_LEVEL > 0 +; 3639 : +; 3640 : return _Mypair._Myval2._Myptr()[0]; + + 000bb 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 000c2 48 8b c8 mov rcx, rax + 000c5 e8 00 00 00 00 call ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ ; std::_String_val >::_Myptr + 000ca b9 01 00 00 00 mov ecx, 1 + 000cf 48 6b c9 00 imul rcx, rcx, 0 + 000d3 48 03 c1 add rax, rcx + +; 3641 : } + + 000d6 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 000dd 5f pop rdi + 000de 5d pop rbp + 000df c3 ret 0 +?front@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEADXZ ENDP ; std::basic_string,std::allocator >::front +_TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp -; COMDAT ?MakeExecutableBuffer@@YAPEAXPEAXK@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; COMDAT ?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z _TEXT SEGMENT -ExecBuffer$ = 8 -Buffer$ = 256 -BufferSize$ = 264 -?MakeExecutableBuffer@@YAPEAXPEAXK@Z PROC ; MakeExecutableBuffer, COMDAT +_Old_size$ = 8 +_Ptr$1 = 40 +$T2 = 260 +$T3 = 292 +this$ = 352 +_Ch$ = 360 +?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z PROC ; std::basic_string,std::allocator >::push_back, COMDAT -; 14 : { +; 3607 : void push_back(const _Elem _Ch) { // insert element at end $LN4: - 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx + 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 08 01 - 00 00 sub rsp, 264 ; 00000108H + 0000b 48 81 ec 68 01 + 00 00 sub rsp, 360 ; 00000168H 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 + 00017 48 8b fc mov rdi, rsp + 0001a b9 5a 00 00 00 mov ecx, 90 ; 0000005aH + 0001f b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00024 f3 ab rep stosd + 00026 48 8b 8c 24 88 + 01 00 00 mov rcx, QWORD PTR [rsp+392] + 0002e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00035 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 3608 : const size_type _Old_size = _Mypair._Myval2._Mysize; + + 0003a 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00041 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 00045 48 89 45 08 mov QWORD PTR _Old_size$[rbp], rax -; 15 : PVOID ExecBuffer = VirtualAlloc(nullptr, BufferSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE); +; 3609 : if (_Old_size < _Mypair._Myval2._Myres) { - 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 + 00049 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00050 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 00054 48 39 45 08 cmp QWORD PTR _Old_size$[rbp], rax + 00058 73 67 jae SHORT $LN2@push_back -; 16 : if (!ExecBuffer) +; 3610 : _Mypair._Myval2._Mysize = _Old_size + 1; - 00043 48 83 7d 08 00 cmp QWORD PTR ExecBuffer$[rbp], 0 - 00048 75 04 jne SHORT $LN2@MakeExecut + 0005a 48 8b 45 08 mov rax, QWORD PTR _Old_size$[rbp] + 0005e 48 ff c0 inc rax + 00061 48 8b 8d 60 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00068 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 17 : return NULL; +; 3611 : _Elem* const _Ptr = _Mypair._Myval2._Myptr(); - 0004a 33 c0 xor eax, eax - 0004c eb 19 jmp SHORT $LN1@MakeExecut -$LN2@MakeExecut: + 0006c 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00073 48 8b c8 mov rcx, rax + 00076 e8 00 00 00 00 call ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ ; std::_String_val >::_Myptr + 0007b 48 89 45 28 mov QWORD PTR _Ptr$1[rbp], rax + +; 3612 : _Traits::assign(_Ptr[_Old_size], _Ch); + + 0007f 48 8b 45 08 mov rax, QWORD PTR _Old_size$[rbp] + 00083 48 8b 4d 28 mov rcx, QWORD PTR _Ptr$1[rbp] + 00087 48 03 c8 add rcx, rax + 0008a 48 8b c1 mov rax, rcx + 0008d 48 8d 95 68 01 + 00 00 lea rdx, QWORD PTR _Ch$[rbp] + 00094 48 8b c8 mov rcx, rax + 00097 e8 00 00 00 00 call ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign + +; 3613 : _Traits::assign(_Ptr[_Old_size + 1], _Elem()); + + 0009c c6 85 04 01 00 + 00 00 mov BYTE PTR $T2[rbp], 0 + 000a3 48 8b 45 28 mov rax, QWORD PTR _Ptr$1[rbp] + 000a7 48 8b 4d 08 mov rcx, QWORD PTR _Old_size$[rbp] + 000ab 48 8d 44 08 01 lea rax, QWORD PTR [rax+rcx+1] + 000b0 48 8d 95 04 01 + 00 00 lea rdx, QWORD PTR $T2[rbp] + 000b7 48 8b c8 mov rcx, rax + 000ba e8 00 00 00 00 call ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ; std::_Narrow_char_traits::assign + +; 3614 : return; + + 000bf eb 34 jmp SHORT $LN1@push_back +$LN2@push_back: + +; 3615 : } +; 3616 : +; 3617 : _Reallocate_grow_by( + + 000c1 48 8d 85 24 01 + 00 00 lea rax, QWORD PTR $T3[rbp] + 000c8 48 8b f8 mov rdi, rax + 000cb 33 c0 xor eax, eax + 000cd b9 01 00 00 00 mov ecx, 1 + 000d2 f3 aa rep stosb + 000d4 44 0f b6 8d 68 + 01 00 00 movzx r9d, BYTE PTR _Ch$[rbp] + 000dc 44 0f b6 85 24 + 01 00 00 movzx r8d, BYTE PTR $T3[rbp] + 000e4 ba 01 00 00 00 mov edx, 1 + 000e9 48 8b 8d 60 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000f0 e8 00 00 00 00 call ??$_Reallocate_grow_by@V@@D@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV01@_KV@@D@Z ; std::basic_string,std::allocator >::_Reallocate_grow_by<,char> +$LN1@push_back: + +; 3618 : 1, +; 3619 : [](_Elem* const _New_ptr, const _Elem* const _Old_ptr, const size_type _Old_size, const _Elem _Ch) { +; 3620 : _Traits::copy(_New_ptr, _Old_ptr, _Old_size); +; 3621 : _Traits::assign(_New_ptr[_Old_size], _Ch); +; 3622 : _Traits::assign(_New_ptr[_Old_size + 1], _Elem()); +; 3623 : }, +; 3624 : _Ch); +; 3625 : } + + 000f5 48 8d a5 48 01 + 00 00 lea rsp, QWORD PTR [rbp+328] + 000fc 5f pop rdi + 000fd 5d pop rbp + 000fe c3 ret 0 +?push_back@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXD@Z ENDP ; std::basic_string,std::allocator >::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\xstring +; COMDAT ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K_K@Z +_TEXT SEGMENT +_Old_size$ = 8 +_My_ptr$ = 40 +_Erase_at$ = 72 +_New_size$ = 104 +tv77 = 312 +tv69 = 312 +this$ = 352 +_Off$ = 360 +_Count$ = 368 +?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K_K@Z PROC ; std::basic_string,std::allocator >::erase, COMDAT + +; 3215 : basic_string& erase(const size_type _Off, size_type _Count) { // erase elements [_Off, _Off + _Count) + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 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:__D15AFF60_xstring + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 3216 : _Mypair._Myval2._Check_offset(_Off); + + 00040 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00047 48 89 85 38 01 + 00 00 mov QWORD PTR tv69[rbp], rax + 0004e 48 8b 95 68 01 + 00 00 mov rdx, QWORD PTR _Off$[rbp] + 00055 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR tv69[rbp] + 0005c e8 00 00 00 00 call ?_Check_offset@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBAX_K@Z ; std::_String_val >::_Check_offset -; 18 : RtlCopyMemory(ExecBuffer, Buffer, BufferSize); +; 3217 : _Count = _Mypair._Myval2._Clamp_suffix_size(_Off, _Count); - 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: + 00061 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00068 48 89 85 38 01 + 00 00 mov QWORD PTR tv77[rbp], rax + 0006f 4c 8b 85 70 01 + 00 00 mov r8, QWORD PTR _Count$[rbp] + 00076 48 8b 95 68 01 + 00 00 mov rdx, QWORD PTR _Off$[rbp] + 0007d 48 8b 8d 38 01 + 00 00 mov rcx, QWORD PTR tv77[rbp] + 00084 e8 00 00 00 00 call ?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z ; std::_String_val >::_Clamp_suffix_size + 00089 48 89 85 70 01 + 00 00 mov QWORD PTR _Count$[rbp], rax + +; 3218 : const size_type _Old_size = _Mypair._Myval2._Mysize; + + 00090 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00097 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 0009b 48 89 45 08 mov QWORD PTR _Old_size$[rbp], rax -; 19 : } +; 3219 : _Elem* const _My_ptr = _Mypair._Myval2._Myptr(); - 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 + 0009f 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000a6 48 8b c8 mov rcx, rax + 000a9 e8 00 00 00 00 call ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ ; std::_String_val >::_Myptr + 000ae 48 89 45 28 mov QWORD PTR _My_ptr$[rbp], rax + +; 3220 : _Elem* const _Erase_at = _My_ptr + _Off; + + 000b2 48 8b 85 68 01 + 00 00 mov rax, QWORD PTR _Off$[rbp] + 000b9 48 8b 4d 28 mov rcx, QWORD PTR _My_ptr$[rbp] + 000bd 48 03 c8 add rcx, rax + 000c0 48 8b c1 mov rax, rcx + 000c3 48 89 45 48 mov QWORD PTR _Erase_at$[rbp], rax + +; 3221 : const size_type _New_size = _Old_size - _Count; + + 000c7 48 8b 85 70 01 + 00 00 mov rax, QWORD PTR _Count$[rbp] + 000ce 48 8b 4d 08 mov rcx, QWORD PTR _Old_size$[rbp] + 000d2 48 2b c8 sub rcx, rax + 000d5 48 8b c1 mov rax, rcx + 000d8 48 89 45 68 mov QWORD PTR _New_size$[rbp], rax + +; 3222 : _Mypair._Myval2._Mysize = _New_size; + + 000dc 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000e3 48 8b 4d 68 mov rcx, QWORD PTR _New_size$[rbp] + 000e7 48 89 48 18 mov QWORD PTR [rax+24], rcx + +; 3223 : _Traits::move(_Erase_at, _Erase_at + _Count, _New_size - _Off + 1); // move suffix + null up + + 000eb 48 8b 85 68 01 + 00 00 mov rax, QWORD PTR _Off$[rbp] + 000f2 48 8b 4d 68 mov rcx, QWORD PTR _New_size$[rbp] + 000f6 48 2b c8 sub rcx, rax + 000f9 48 8b c1 mov rax, rcx + 000fc 48 ff c0 inc rax + 000ff 48 8b 8d 70 01 + 00 00 mov rcx, QWORD PTR _Count$[rbp] + 00106 48 8b 55 48 mov rdx, QWORD PTR _Erase_at$[rbp] + 0010a 48 03 d1 add rdx, rcx + 0010d 48 8b ca mov rcx, rdx + 00110 4c 8b c0 mov r8, rax + 00113 48 8b d1 mov rdx, rcx + 00116 48 8b 4d 48 mov rcx, QWORD PTR _Erase_at$[rbp] + 0011a e8 00 00 00 00 call ?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z ; std::_Narrow_char_traits::move + +; 3224 : return *this; + + 0011f 48 8b 85 60 01 + 00 00 mov rax, QWORD PTR this$[rbp] + +; 3225 : } + + 00126 48 8d a5 48 01 + 00 00 lea rsp, QWORD PTR [rbp+328] + 0012d 5f pop rdi + 0012e 5d pop rbp + 0012f c3 ret 0 +?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@_K_K@Z ENDP ; std::basic_string,std::allocator >::erase _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT ??1_NATIVE_CODE_BLOCK@@QEAA@XZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; COMDAT ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ +_TEXT SEGMENT +_Alproxy$ = 8 +$S9$ = 36 +_To_delete$ = 72 +__$ArrayPad$ = 280 +this$ = 320 +??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ PROC ; std::basic_string,std::allocator >::~basic_string,std::allocator >, COMDAT + +; 2722 : ~basic_string() noexcept { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 48 01 + 00 00 sub rsp, 328 ; 00000148H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 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 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 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 2723 : _Tidy_deallocate(); + + 00047 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0004e e8 00 00 00 00 call ?_Tidy_deallocate@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ ; std::basic_string,std::allocator >::_Tidy_deallocate + +; 2724 : #if _ITERATOR_DEBUG_LEVEL != 0 +; 2725 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); + + 00053 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0005a e8 00 00 00 00 call ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ ; std::basic_string,std::allocator >::_Getal + 0005f 48 8b d0 mov rdx, rax + 00062 48 8d 4d 24 lea rcx, QWORD PTR $S9$[rbp] + 00066 e8 00 00 00 00 call ??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z ; std::allocator::allocator + 0006b 48 8d 45 24 lea rax, QWORD PTR $S9$[rbp] + 0006f 48 89 45 08 mov QWORD PTR _Alproxy$[rbp], rax + +; 2726 : const auto _To_delete = _Mypair._Myval2._Myproxy; + + 00073 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0007a 48 8b 00 mov rax, QWORD PTR [rax] + 0007d 48 89 45 48 mov QWORD PTR _To_delete$[rbp], rax + +; 2727 : _Mypair._Myval2._Myproxy = nullptr; + + 00081 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00088 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + +; 2728 : _Delete_plain_internal(_Alproxy, _To_delete); + + 0008f 48 8b 55 48 mov rdx, QWORD PTR _To_delete$[rbp] + 00093 48 8b 4d 08 mov rcx, QWORD PTR _Alproxy$[rbp] + 00097 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 > + +; 2729 : #endif // _ITERATOR_DEBUG_LEVEL != 0 +; 2730 : } + + 0009c 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000a3 48 8b c8 mov rcx, rax + 000a6 e8 00 00 00 00 call ??1?$_Compressed_pair@V?$allocator@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@XZ + 000ab 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000af 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ$rtcFrameData + 000b6 e8 00 00 00 00 call _RTC_CheckStackVars + 000bb 90 npad 1 + 000bc 48 8b 8d 18 01 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 000c3 48 33 cd xor rcx, rbp + 000c6 e8 00 00 00 00 call __security_check_cookie + 000cb 48 8d a5 28 01 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000d2 5f pop rdi + 000d3 5d pop rbp + 000d4 c3 ret 0 +??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ENDP ; std::basic_string,std::allocator >::~basic_string,std::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\xstring +; COMDAT ??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ +_TEXT SEGMENT +$T1 = 196 +$T2 = 228 +tv86 = 248 +tv69 = 248 +this$ = 288 +??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ PROC ; std::basic_string,std::allocator >::basic_string,std::allocator >, COMDAT + +; 2287 : basic_string() noexcept(is_nothrow_default_constructible_v<_Alty>) : _Mypair(_Zero_then_variadic_args_t{}) { + +$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 + 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:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 89 85 f8 00 + 00 00 mov QWORD PTR tv69[rbp], rax + 00044 0f b6 95 c4 00 + 00 00 movzx edx, BYTE PTR $T1[rbp] + 0004b 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@D@std@@V?$_String_val@U?$_Simple_types@D@std@@@2@$00@std@@QEAA@U_Zero_then_variadic_args_t@1@@Z ; std::_Compressed_pair,std::_String_val >,1>::_Compressed_pair,std::_String_val >,1><> + +; 2288 : _Mypair._Myval2._Alloc_proxy(_GET_PROXY_ALLOCATOR(_Alty, _Getal())); + + 00057 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005e 48 89 85 f8 00 + 00 00 mov QWORD PTR tv86[rbp], rax + 00065 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0006c e8 00 00 00 00 call ?_Getal@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAAEAV?$allocator@D@2@XZ ; std::basic_string,std::allocator >::_Getal + 00071 48 8b d0 mov rdx, rax + 00074 48 8d 8d e4 00 + 00 00 lea rcx, QWORD PTR $T2[rbp] + 0007b e8 00 00 00 00 call ??$?0D@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@D@1@@Z ; std::allocator::allocator + 00080 48 8b d0 mov rdx, rax + 00083 48 8b 8d f8 00 + 00 00 mov rcx, QWORD PTR tv86[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 > + +; 2289 : _Tidy_init(); + + 0008f 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00096 e8 00 00 00 00 call ?_Tidy_init@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAXXZ ; std::basic_string,std::allocator >::_Tidy_init + +; 2290 : } + + 0009b 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000a2 48 8d a5 08 01 + 00 00 lea rsp, QWORD PTR [rbp+264] + 000a9 5f pop rdi + 000aa 5d pop rbp + 000ab c3 ret 0 +??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ ENDP ; std::basic_string,std::allocator >::basic_string,std::allocator > +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ??1?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 -??1_NATIVE_CODE_BLOCK@@QEAA@XZ PROC ; _NATIVE_CODE_BLOCK::~_NATIVE_CODE_BLOCK, COMDAT +??1?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ PROC ; std::_String_val >::~_String_val >, COMDAT $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp @@ -1902,26 +15973,65 @@ $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 85 e0 00 + 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 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 + 00031 48 83 c0 08 add rax, 8 + 00035 48 8b c8 mov rcx, rax + 00038 e8 00 00 00 00 call ??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ; std::_String_val >::_Bxty::~_Bxty + 0003d 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 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 +??1?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ENDP ; std::_String_val >::~_String_val > _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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; COMDAT ??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@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 +??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ PROC ; std::_String_val >::_Bxty::~_Bxty, COMDAT + +; 2180 : ~_Bxty() noexcept {} // user-provided, for fancy 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 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:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 90 npad 1 + 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 +??1_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ENDP ; std::_String_val >::_Bxty::~_Bxty +_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 ??0_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ +_TEXT SEGMENT +this$ = 224 +??0_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ PROC ; std::_String_val >::_Bxty::_Bxty, COMDAT -; 1377 : constexpr _Ty1& _Get_first() noexcept { +; 2178 : _Bxty() {} // user-provided, for fancy pointers $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -1929,1583 +16039,2134 @@ $LN3: 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 + 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:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 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 +??0_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ENDP ; std::_String_val >::_Bxty::_Bxty +_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 ?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z +_TEXT SEGMENT +$T1 = 200 +this$ = 256 +_Off$ = 264 +_Size$ = 272 +?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z PROC ; std::_String_val >::_Clamp_suffix_size, COMDAT + +; 2172 : size_type _Clamp_suffix_size(const size_type _Off, const size_type _Size) const 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 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:__D15AFF60_xstring + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 2173 : // trims _Size to the longest it can be assuming a string at/after _Off +; 2174 : return (_STD min)(_Size, _Mysize - _Off); + + 00040 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00047 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Off$[rbp] + 0004e 48 8b 40 18 mov rax, QWORD PTR [rax+24] + 00052 48 2b c1 sub rax, rcx + 00055 48 89 85 c8 00 + 00 00 mov QWORD PTR $T1[rbp], rax + 0005c 48 8d 95 c8 00 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00063 48 8d 8d 10 01 + 00 00 lea rcx, QWORD PTR _Size$[rbp] + 0006a e8 00 00 00 00 call ??$min@_K@std@@YAAEB_KAEB_K0@Z ; std::min + 0006f 48 8b 00 mov rax, QWORD PTR [rax] + +; 2175 : } + + 00072 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00079 5f pop rdi + 0007a 5d pop rbp + 0007b c3 ret 0 +?_Clamp_suffix_size@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_K_K0@Z ENDP ; std::_String_val >::_Clamp_suffix_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\xstring +; COMDAT ?_Xran@?$_String_val@U?$_Simple_types@D@std@@@std@@SAXXZ +_TEXT SEGMENT +?_Xran@?$_String_val@U?$_Simple_types@D@std@@@std@@SAXXZ PROC ; std::_String_val >::_Xran, COMDAT + +; 2168 : [[noreturn]] static void _Xran() { + +$LN3: + 00000 40 55 push rbp + 00002 57 push rdi + 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 + +; 2169 : _Xout_of_range("invalid string position"); + + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0BI@CFPLBAOH@invalid?5string?5position@ + 00031 e8 00 00 00 00 call ?_Xout_of_range@std@@YAXPEBD@Z ; std::_Xout_of_range +$LN2@Xran: + +; 2170 : } + + 00036 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 +?_Xran@?$_String_val@U?$_Simple_types@D@std@@@std@@SAXXZ ENDP ; std::_String_val >::_Xran +_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 ?_Check_offset@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBAX_K@Z +_TEXT SEGMENT +this$ = 224 +_Off$ = 232 +?_Check_offset@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBAX_K@Z PROC ; std::_String_val >::_Check_offset, COMDAT + +; 2156 : void _Check_offset(const size_type _Off) const { // checks whether _Off is in the bounds of [0, size()] + +$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:__D15AFF60_xstring + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 2157 : if (_Mysize < _Off) { + + 0003b 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Off$[rbp] + 00049 48 39 48 18 cmp QWORD PTR [rax+24], rcx + 0004d 73 05 jae SHORT $LN2@Check_offs -; 1378 : return *this; +; 2158 : _Xran(); - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR this$[rbp] + 0004f e8 00 00 00 00 call ?_Xran@?$_String_val@U?$_Simple_types@D@std@@@std@@SAXXZ ; std::_String_val >::_Xran +$LN2@Check_offs: +$LN3@Check_offs: -; 1379 : } +; 2159 : } +; 2160 : } - 00026 48 8d a5 c8 00 + 00054 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 + 0005b 5f pop rdi + 0005c 5d pop rbp + 0005d c3 ret 0 +?_Check_offset@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBAX_K@Z ENDP ; std::_String_val >::_Check_offset _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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; COMDAT ?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ _TEXT SEGMENT -this$ = 224 -?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ PROC ; std::vector >::_Getal, COMDAT +tv66 = 192 +this$ = 240 +?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ PROC ; std::_String_val >::_Large_string_engaged, COMDAT -; 1817 : _NODISCARD _CONSTEXPR20_CONTAINER _Alty& _Getal() noexcept { +; 2152 : bool _Large_string_engaged() const noexcept { -$LN3: +$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 + 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 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 + 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:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 2153 : return _BUF_SIZE <= _Myres; + + 00036 48 8b 85 f0 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 + 0003d 48 83 78 20 10 cmp QWORD PTR [rax+32], 16 + 00042 72 0c jb SHORT $LN3@Large_stri + 00044 c7 85 c0 00 00 + 00 01 00 00 00 mov DWORD PTR tv66[rbp], 1 + 0004e eb 0a jmp SHORT $LN4@Large_stri +$LN3@Large_stri: + 00050 c7 85 c0 00 00 + 00 00 00 00 00 mov DWORD PTR tv66[rbp], 0 +$LN4@Large_stri: + 0005a 0f b6 85 c0 00 + 00 00 movzx eax, BYTE PTR tv66[rbp] + +; 2154 : } + + 00061 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 00068 5f pop rdi + 00069 5d pop rbp + 0006a c3 ret 0 +?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ ENDP ; std::_String_val >::_Large_string_engaged _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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; COMDAT ?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ _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 +_Result$ = 8 +this$ = 256 +?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ PROC ; std::_String_val >::_Myptr, COMDAT -; 1755 : _CONSTEXPR20_CONTAINER void _Tidy() noexcept { // free all storage +; 2134 : value_type* _Myptr() 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 78 01 - 00 00 sub rsp, 376 ; 00000178H + 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:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1756 : auto& _My_data = _Mypair._Myval2; +; 2135 : value_type* _Result = _Bx._Buf; - 0001f 48 8b 85 70 01 + 00036 48 8b 85 00 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 + 0003d 48 83 c0 08 add rax, 8 + 00041 48 89 45 08 mov QWORD PTR _Result$[rbp], rax -; 1765 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); +; 2136 : if (_Large_string_engaged()) { - 0007f 48 8b 8d 70 01 + 00045 48 8b 8d 00 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; + 0004c e8 00 00 00 00 call ?_Large_string_engaged@?$_String_val@U?$_Simple_types@D@std@@@std@@QEBA_NXZ ; std::_String_val >::_Large_string_engaged + 00051 0f b6 c0 movzx eax, al + 00054 85 c0 test eax, eax + 00056 74 14 je SHORT $LN2@Myptr - 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; +; 2137 : _Result = _Unfancy(_Bx._Ptr); - 000e1 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] - 000e5 48 c7 00 00 00 - 00 00 mov QWORD PTR [rax], 0 + 00058 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005f 48 8b 48 08 mov rcx, QWORD PTR [rax+8] + 00063 e8 00 00 00 00 call ??$_Unfancy@D@std@@YAPEADPEAD@Z ; std::_Unfancy + 00068 48 89 45 08 mov QWORD PTR _Result$[rbp], rax +$LN2@Myptr: -; 1769 : _Myend = nullptr; +; 2138 : } +; 2139 : +; 2140 : return _Result; - 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: + 0006c 48 8b 45 08 mov rax, QWORD PTR _Result$[rbp] -; 1770 : } -; 1771 : } +; 2141 : } - 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 + 00070 48 8d a5 e8 00 + 00 00 lea rsp, QWORD PTR [rbp+232] + 00077 5f pop rdi + 00078 5d pop rbp + 00079 c3 ret 0 +?_Myptr@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAAPEADXZ ENDP ; std::_String_val >::_Myptr _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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; COMDAT ??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 -_First$ = 232 -_Last$ = 240 -?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z PROC ; std::vector >::_Destroy, COMDAT +??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ PROC ; std::_String_val >::_String_val >, COMDAT -; 1678 : _CONSTEXPR20_CONTAINER void _Destroy(pointer _First, pointer _Last) { +; 2124 : _String_val() : _Bx(), _Mysize(0), _Myres(0) {} -$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 +$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 - 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 + 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:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 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 + 0003d e8 00 00 00 00 call ??0_Container_base12@std@@QEAA@XZ ; std::_Container_base12::_Container_base12 + 00042 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00049 48 83 c0 08 add rax, 8 + 0004d 48 8b c8 mov rcx, rax + 00050 e8 00 00 00 00 call ??0_Bxty@?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ; std::_String_val >::_Bxty::_Bxty + 00055 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005c 48 c7 40 18 00 + 00 00 00 mov QWORD PTR [rax+24], 0 + 00064 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006b 48 c7 40 20 00 + 00 00 00 mov QWORD PTR [rax+32], 0 + 00073 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0007a 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 + 00081 5f pop rdi + 00082 5d pop rbp + 00083 c3 ret 0 +??0?$_String_val@U?$_Simple_types@D@std@@@std@@QEAA@XZ ENDP ; std::_String_val >::_String_val > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\vector -; COMDAT ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z _TEXT SEGMENT -_Alproxy$ = 8 -$S1$ = 36 -$T4 = 260 -__$ArrayPad$ = 280 -this$ = 320 -??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::vector >::~vector >, COMDAT +__formal$ = 224 +?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@2@@Z PROC ; std::_Default_allocator_traits >::max_size, COMDAT -; 711 : _CONSTEXPR20_CONTAINER ~vector() noexcept { +; 702 : _NODISCARD static size_type max_size(const _Alloc&) noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec 48 01 - 00 00 sub rsp, 328 ; 00000148H + 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 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00018 b9 1a 00 00 00 mov ecx, 26 - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 68 - 01 00 00 mov rcx, QWORD PTR [rsp+360] - 0002c 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 18 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 712 : _Tidy(); - - 00049 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00050 e8 00 00 00 00 call ?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ ; std::vector >::_Tidy - -; 713 : #if _ITERATOR_DEBUG_LEVEL != 0 -; 714 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); - - 00055 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0005c e8 00 00 00 00 call ?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ ; std::vector >::_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 + 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 -; 715 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); +; 703 : return static_cast(-1) / sizeof(value_type); - 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 > + 00036 48 c7 c0 ff ff + ff ff mov rax, -1 -; 716 : #endif // _ITERATOR_DEBUG_LEVEL != 0 -; 717 : } +; 704 : } - 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 > + 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 +?max_size@?$_Default_allocator_traits@V?$allocator@D@std@@@std@@SA_KAEBV?$allocator@D@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.29.30037\include\xmemory -; COMDAT ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; COMDAT ?_Xlen_string@std@@YAXXZ _TEXT SEGMENT -this$ = 224 -_Ptr$ = 232 -_Count$ = 240 -?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z PROC ; std::allocator::deallocate, COMDAT +?_Xlen_string@std@@YAXXZ PROC ; std::_Xlen_string, COMDAT -; 833 : _CONSTEXPR20_DYNALLOC void deallocate(_Ty* const _Ptr, const size_t _Count) { +; 2200 : [[noreturn]] inline void _Xlen_string() { $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 + 00000 40 55 push rbp + 00002 57 push rdi + 00003 48 81 ec e8 00 00 00 sub rsp, 232 ; 000000e8H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 834 : // no overflow check on the following multiply; we assume _Allocate did that check -; 835 : _Deallocate<_New_alignof<_Ty>>(_Ptr, sizeof(_Ty) * _Count); - - 00029 48 8b 85 f0 00 - 00 00 mov rax, QWORD PTR _Count$[rbp] - 00030 48 c1 e0 02 shl rax, 2 - 00034 48 8b d0 mov rdx, rax - 00037 48 8b 8d e8 00 - 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0003e e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> - -; 836 : } - - 00043 48 8d a5 c8 00 - 00 00 lea rsp, QWORD PTR [rbp+200] - 0004a 5f pop rdi - 0004b 5d pop rbp - 0004c c3 ret 0 -?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ENDP ; std::allocator::deallocate -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime -; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z -_TEXT SEGMENT -$T1 = 200 -tv93 = 264 -tv85 = 264 -this$ = 304 -__formal$ = 312 -_Lobj$ = 320 -??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT - -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values - -$LN5: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 56 push rsi - 00011 57 push rdi - 00012 48 81 ec 30 01 - 00 00 sub rsp, 304 ; 00000130H - 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 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:__B7A2C865_xloctime + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 174 : _Cvt = _Lobj._Getcvt(); - - 0002a 48 8d 95 c8 00 - 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 - 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb - -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { - - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals - -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - - 0005a 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 - 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax - -; 178 : _Months = - - 0007a 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 - 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax - -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - - 0009a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax - -; 181 : } else { - - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals -$LN2@Getvals: - -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - - 000b6 48 8b 85 30 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 - 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 - 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax - -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - - 000f4 48 8b 85 30 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 - 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 - 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax - -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 2201 : _Xlength_error("string too long"); - 00132 48 8b 85 30 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax -$LN3@Getvals: + 0002a 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@JFNIOLAK@string?5too?5long@ + 00031 e8 00 00 00 00 call ?_Xlength_error@std@@YAXPEBD@Z ; std::_Xlength_error +$LN2@Xlen_strin: -; 185 : } -; 186 : } +; 2202 : } - 00159 48 8d a5 10 01 - 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 -??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals + 00036 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 +?_Xlen_string@std@@YAXXZ ENDP ; std::_Xlen_string _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xloctime -; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +; 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 _TEXT SEGMENT -$T1 = 200 -tv93 = 264 -tv85 = 264 -this$ = 304 -__formal$ = 312 -_Lobj$ = 320 -??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT +?eof@?$_Narrow_char_traits@DH@std@@SAHXZ PROC ; std::_Narrow_char_traits::eof, COMDAT -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 400 : _NODISCARD static constexpr int_type eof() noexcept { -$LN5: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 56 push rsi - 00011 57 push rdi - 00012 48 81 ec 30 01 - 00 00 sub rsp, 304 ; 00000130H - 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] +$LN3: + 00000 40 55 push rbp + 00002 57 push rdi + 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:__B7A2C865_xloctime + 00 00 lea rcx, OFFSET FLAT:__D15AFF60_xstring 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 174 : _Cvt = _Lobj._Getcvt(); +; 401 : return static_cast(EOF); - 0002a 48 8d 95 c8 00 - 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 - 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 0002a b8 ff ff ff ff mov eax, -1 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 402 : } - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0002f 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 +_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 ?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z +_TEXT SEGMENT +tv69 = 192 +tv68 = 196 +_Meta$ = 240 +?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z PROC ; std::_Narrow_char_traits::not_eof, COMDAT -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 396 : _NODISCARD static constexpr int_type not_eof(const int_type& _Meta) noexcept { - 0005a 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 - 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax +$LN7: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 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:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 397 : return _Meta != eof() ? _Meta : !eof(); + + 00036 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 0003b 48 8b 8d f0 00 + 00 00 mov rcx, QWORD PTR _Meta$[rbp] + 00042 39 01 cmp DWORD PTR [rcx], eax + 00044 74 11 je SHORT $LN5@not_eof + 00046 48 8b 85 f0 00 + 00 00 mov rax, QWORD PTR _Meta$[rbp] + 0004d 8b 00 mov eax, DWORD PTR [rax] + 0004f 89 85 c0 00 00 + 00 mov DWORD PTR tv69[rbp], eax + 00055 eb 2b jmp SHORT $LN6@not_eof +$LN5@not_eof: + 00057 e8 00 00 00 00 call ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ ; std::_Narrow_char_traits::eof + 0005c 85 c0 test eax, eax + 0005e 75 0c jne SHORT $LN3@not_eof + 00060 c7 85 c4 00 00 + 00 01 00 00 00 mov DWORD PTR tv68[rbp], 1 + 0006a eb 0a jmp SHORT $LN4@not_eof +$LN3@not_eof: + 0006c c7 85 c4 00 00 + 00 00 00 00 00 mov DWORD PTR tv68[rbp], 0 +$LN4@not_eof: + 00076 8b 85 c4 00 00 + 00 mov eax, DWORD PTR tv68[rbp] + 0007c 89 85 c0 00 00 + 00 mov DWORD PTR tv69[rbp], eax +$LN6@not_eof: + 00082 8b 85 c0 00 00 + 00 mov eax, DWORD PTR tv69[rbp] + +; 398 : } + + 00088 48 8d a5 d8 00 + 00 00 lea rsp, QWORD PTR [rbp+216] + 0008f 5f pop rdi + 00090 5d pop rbp + 00091 c3 ret 0 +?not_eof@?$_Narrow_char_traits@DH@std@@SAHAEBH@Z ENDP ; std::_Narrow_char_traits::not_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 +; COMDAT ?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@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 -; 178 : _Months = +; 392 : _NODISCARD static constexpr bool eq_int_type(const int_type& _Left, const int_type& _Right) noexcept { - 0007a 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 - 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax +$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 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 +_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 ?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z +_TEXT SEGMENT +_Ch$ = 224 +?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z PROC ; std::_Narrow_char_traits::to_int_type, COMDAT -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 388 : _NODISCARD static constexpr int_type to_int_type(const _Elem& _Ch) noexcept { - 0009a 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax +$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:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 181 : } else { +; 389 : return static_cast(_Ch); - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals -$LN2@Getvals: + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Ch$[rbp] + 0003d 0f b6 00 movzx eax, BYTE PTR [rax] -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 390 : } - 000b6 48 8b 85 30 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 - 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 - 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00040 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00047 5f pop rdi + 00048 5d pop rbp + 00049 c3 ret 0 +?to_int_type@?$_Narrow_char_traits@DH@std@@SAHAEBD@Z ENDP ; std::_Narrow_char_traits::to_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\xstring +; COMDAT ?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z +_TEXT SEGMENT +_Meta$ = 224 +?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z PROC ; std::_Narrow_char_traits::to_char_type, COMDAT -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 384 : _NODISCARD static constexpr _Elem to_char_type(const int_type& _Meta) noexcept { - 000f4 48 8b 85 30 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 - 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 - 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax +$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:__D15AFF60_xstring + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 385 : return static_cast<_Elem>(_Meta); - 00132 48 8b 85 30 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 - 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax -$LN3@Getvals: + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Meta$[rbp] + 0003d 0f b6 00 movzx eax, BYTE PTR [rax] -; 185 : } -; 186 : } +; 386 : } - 00159 48 8d a5 10 01 - 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 -??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z ENDP ; std::time_get > >::_Getvals + 00040 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00047 5f pop rdi + 00048 5d pop rbp + 00049 c3 ret 0 +?to_char_type@?$_Narrow_char_traits@DH@std@@SADAEBH@Z ENDP ; std::_Narrow_char_traits::to_char_type _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale -; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstring +; COMDAT ?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z _TEXT SEGMENT -_Count$ = 8 -_Ptrdest$ = 40 -_Ptrnext$1 = 72 -_Ptr$ = 320 -__formal$ = 328 -__formal$ = 336 -??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT +_Left$ = 224 +_Right$ = 232 +?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z PROC ; std::_Narrow_char_traits::assign, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 372 : static _CONSTEXPR17 void assign(_Elem& _Left, const _Elem& _Right) noexcept { -$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 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:__D15AFF60_xstring + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 373 : _Left = _Right; + + 0003b 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Left$[rbp] + 00042 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Right$[rbp] + 00049 0f b6 09 movzx ecx, BYTE PTR [rcx] + 0004c 88 08 mov BYTE PTR [rax], cl + +; 374 : } + + 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 +?assign@?$_Narrow_char_traits@DH@std@@SAXAEADAEBD@Z ENDP ; std::_Narrow_char_traits::assign +_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 ?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z +_TEXT SEGMENT +_First1$ = 224 +_First2$ = 232 +_Count$ = 240 +?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z PROC ; std::_Narrow_char_traits::move, COMDAT + +; 361 : const size_t _Count) noexcept /* strengthened */ { + +$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 58 01 - 00 00 sub rsp, 344 ; 00000158H - 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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:__D15AFF60_xstring + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 362 : // copy [_First2, _First2 + _Count) to [_First1, ...) +; 363 : return static_cast<_Elem*>(_CSTD memmove(_First1, _First2, _Count)); + + 00040 4c 8b 85 f0 00 + 00 00 mov r8, QWORD PTR _Count$[rbp] + 00047 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _First2$[rbp] + 0004e 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _First1$[rbp] + 00055 e8 00 00 00 00 call memmove + 0005a 90 npad 1 -; 523 : // convert C string to _Elem sequence using _Cvtvec -; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; +; 364 : } - 00029 48 8b 8d 40 01 - 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 - 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 - 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 0005b 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 +?move@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z ENDP ; std::_Narrow_char_traits::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\xstring +; COMDAT ?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z +_TEXT SEGMENT +_First1$ = 224 +_First2$ = 232 +_Count$ = 240 +?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z PROC ; std::_Narrow_char_traits::copy, COMDAT -; 527 : -; 528 : if (!_Ptrdest) { +; 326 : const size_t _Count) noexcept /* strengthened */ { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr +$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:__D15AFF60_xstring + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 327 : // copy [_First2, _First2 + _Count) to [_First1, ...) +; 328 : return static_cast<_Elem*>(_CSTD memcpy(_First1, _First2, _Count)); + + 00040 4c 8b 85 f0 00 + 00 00 mov r8, QWORD PTR _Count$[rbp] + 00047 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _First2$[rbp] + 0004e 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _First1$[rbp] + 00055 e8 00 00 00 00 call memcpy + 0005a 90 npad 1 -; 529 : _Xbad_alloc(); +; 329 : } - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc -$LN5@Maklocstr: + 0005b 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 +?copy@?$_Narrow_char_traits@DH@std@@SAPEADQEADQEBD_K@Z ENDP ; std::_Narrow_char_traits::copy +_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@?$allocator@D@std@@QEAAPEAD_K@Z +_TEXT SEGMENT +this$ = 224 +_Count$ = 232 +?allocate@?$allocator@D@std@@QEAAPEAD_K@Z PROC ; std::allocator::allocate, COMDAT -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 806 : _NODISCARD __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr -$LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 - 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 - 00 00 mov QWORD PTR _Ptr$[rbp], rax -$LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr +$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 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 + 00 00 mov rcx, QWORD PTR _Count$[rbp] + 00042 e8 00 00 00 00 call ??$_Get_size_of_n@$00@std@@YA_K_K@Z ; std::_Get_size_of_n<1> + 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> + +; 808 : } + + 0004f 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 +?allocate@?$allocator@D@std@@QEAAPEAD_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 +; COMDAT ?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z +_TEXT SEGMENT +this$ = 224 +_Ptr$ = 232 +_Count$ = 240 +?deallocate@?$allocator@D@std@@QEAAXQEAD_K@Z PROC ; std::allocator::deallocate, COMDAT -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 801 : void deallocate(_Ty* const _Ptr, const size_t _Count) { - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 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 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 95 f0 00 + 00 00 mov rdx, QWORD PTR _Count$[rbp] + 00047 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 0004e e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> -; 534 : } +; 804 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr -$LN3@Maklocstr: + 00053 48 8d a5 c8 00 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0005a 5f pop rdi + 0005b 5d pop rbp + 0005c c3 ret 0 +?deallocate@?$allocator@D@std@@QEAAXQEAD_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 +; COMDAT ??0?$allocator@D@std@@QEAA@XZ +_TEXT SEGMENT +this$ = 224 +??0?$allocator@D@std@@QEAA@XZ PROC ; std::allocator::allocator, COMDAT -; 535 : -; 536 : return _Ptrdest; +; 795 : constexpr allocator() noexcept {} - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] -$LN6@Maklocstr: +$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:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 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 +??0?$allocator@D@std@@QEAA@XZ 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 +; 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 +_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 -; 537 : } +; 228 : void _Construct_in_place(_Ty& _Obj, _Types&&... _Args) noexcept(is_nothrow_constructible_v<_Ty, _Types...>) { - 000be 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 -??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr +$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 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 + 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 + 00 00 mov QWORD PTR $T1[rbp], rax + 0005b 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 + 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 + +; 229 : ::new (const_cast(static_cast(_STD addressof(_Obj)))) +; 230 : _Ty(_STD forward<_Types>(_Args)...); +; 231 : } + + 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 +??$_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.29.30037\include\xlocnum -; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z +; 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 _TEXT SEGMENT -_Count$ = 8 -_Ptrdest$ = 40 -_Ptr$ = 288 -?_Maklocwcs@std@@YAPEA_WPEB_W@Z PROC ; std::_Maklocwcs, COMDAT +_Lock$4 = 4 +_Pnext$5 = 40 +__$ArrayPad$ = 248 +this$ = 288 +?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT -; 90 : inline wchar_t* _Maklocwcs(const wchar_t* _Ptr) { // copy NTWCS to allocated storage +; 1205 : inline void _Container_base12::_Orphan_all() noexcept { -$LN4: +$LN7: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec 38 01 - 00 00 sub rsp, 312 ; 00000138H - 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 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 + 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 -; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; +; 1206 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1207 : if (_Myproxy) { // proxy allocated, drain it - 0001f 48 8b 8d 20 01 - 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 - 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 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 -; 92 : -; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 1208 : _Lockit _Lock(_LOCK_DEBUG); - 00033 8b 05 00 00 00 - 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 - 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 - 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 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 -; 94 : -; 95 : if (!_Ptrdest) { +; 1209 : +; 1210 : for (auto _Pnext = &_Myproxy->_Myfirstiter; *_Pnext; *_Pnext = (*_Pnext)->_Mynextiter) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00063 48 8b 85 20 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 +$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 +$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 -; 96 : _Xbad_alloc(); +; 1211 : (*_Pnext)->_Myproxy = nullptr; - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc -$LN2@Maklocwcs: + 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 + 00 00 mov QWORD PTR [rax], 0 -; 97 : } -; 98 : -; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); +; 1212 : } - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 - 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 000a1 eb d4 jmp SHORT $LN2@Orphan_all +$LN3@Orphan_all: -; 100 : return _Ptrdest; +; 1213 : +; 1214 : _Myproxy->_Myfirstiter = nullptr; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] -$LN3@Maklocwcs: + 000a3 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000aa 48 8b 00 mov rax, QWORD PTR [rax] + 000ad 48 c7 40 08 00 + 00 00 00 mov QWORD PTR [rax+8], 0 + +; 1215 : } + + 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: + +; 1216 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1217 : } + + 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 +?_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 +; COMDAT ??0_Container_base12@std@@QEAA@XZ +_TEXT SEGMENT +this$ = 224 +??0_Container_base12@std@@QEAA@XZ PROC ; std::_Container_base12::_Container_base12, COMDAT -; 101 : } +; 1092 : _Container_base12() noexcept : _Myproxy(nullptr) {} - 00084 48 8d a5 08 01 - 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 -?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs +$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:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + 00044 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 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 +??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.29.30037\include\xlocale -; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory +; COMDAT ??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z _TEXT SEGMENT -_Count$ = 8 -_Count1$ = 40 -_Wchars$ = 72 -_Ptr1$ = 104 -_Bytes$ = 132 -_Wc$ = 164 -_Mbst1$ = 200 -_Ptrdest$ = 232 -_Ptrnext$ = 264 -_Mbst2$ = 296 -__$ArrayPad$ = 504 -_Ptr$ = 544 -__formal$ = 552 -_Cvt$ = 560 -??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT +this$ = 224 +_Mycont_$ = 232 +??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z PROC ; std::_Container_proxy::_Container_proxy, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 1084 : _Container_proxy(_Container_base12* _Mycont_) noexcept : _Mycont(_Mycont_), _Myfirstiter(nullptr) {} -$LN12: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec 38 02 - 00 00 sub rsp, 568 ; 00000238H - 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] - 0001d 48 8d 7c 24 30 lea rdi, QWORD PTR [rsp+48] - 00022 b9 52 00 00 00 mov ecx, 82 ; 00000052H - 00027 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 0002c f3 ab rep stosd - 0002e 48 8b 8c 24 58 - 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 - 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb +$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 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 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 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 + 00 00 mov rax, QWORD PTR this$[rbp] + 00053 48 c7 40 08 00 + 00 00 00 mov QWORD PTR [rax+8], 0 + 0005b 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00062 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 +??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 +; COMDAT ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z +_TEXT SEGMENT +_Ptr_user$ = 8 +_Ptr_container$ = 40 +_Min_back_shift$ = 72 +_Back_shift$ = 104 +_Ptr$ = 352 +_Bytes$ = 360 +?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z PROC ; std::_Adjust_manually_vector_aligned, COMDAT -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 132 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { - 00066 48 8b 8d 20 02 - 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax +$LN21: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 78 01 + 00 00 sub rsp, 376 ; 00000178H + 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00018 48 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 + 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 + 00 00 mov rcx, QWORD PTR _Bytes$[rbp] + 00050 48 89 01 mov QWORD PTR [rcx], rax -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 135 : +; 136 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 - 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00053 48 8b 85 60 01 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr -$LN2@Maklocstr: - 00096 48 63 85 84 00 - 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 - 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax -$LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr - -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - - 000d2 48 8b 85 30 02 - 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 - 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 - 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 - 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 - 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 0005a 48 8b 00 mov rax, QWORD PTR [rax] + 0005d 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax -; 553 : break; +; 137 : const uintptr_t _Ptr_container = _Ptr_user[-1]; - 00108 eb 02 jmp SHORT $LN3@Maklocstr -$LN8@Maklocstr: + 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 +$LN4@Adjust_man: -; 554 : } -; 555 : } +; 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"); - 0010a eb 8a jmp SHORT $LN2@Maklocstr -$LN3@Maklocstr: + 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 + 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 +$LN14@Adjust_man: +$LN7@Adjust_man: + 00095 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 + 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 + 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 + 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 +$LN19@Adjust_man: + 000d6 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 + 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 + 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 + 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 + 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 +$LN15@Adjust_man: + 0010c 33 c0 xor eax, eax + 0010e 85 c0 test eax, eax + 00110 0f 85 60 ff ff + ff jne $LN4@Adjust_man -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 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*); - 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 + 00116 48 c7 45 48 10 + 00 00 00 mov QWORD PTR _Min_back_shift$[rbp], 16 -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 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; - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 - 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 - 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 - 00 00 mov QWORD PTR _Ptrdest$[rbp], rax + 0011e 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 +$LN10@Adjust_man: -; 560 : -; 561 : if (!_Ptrdest) { +; 151 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); - 00142 48 83 bd e8 00 - 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 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 +$LN16@Adjust_man: +$LN13@Adjust_man: + 00143 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 + 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 + 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 + 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 +$LN20@Adjust_man: + 00184 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 + 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 + 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 + 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 + 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 +$LN17@Adjust_man: + 001ba 33 c0 xor eax, eax + 001bc 85 c0 test eax, eax + 001be 0f 85 6f ff ff + ff jne $LN10@Adjust_man -; 562 : _Xbad_alloc(); +; 152 : _Ptr = reinterpret_cast(_Ptr_container); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc -$LN9@Maklocstr: + 001c4 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 -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 153 : } - 00151 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 - 00 00 mov QWORD PTR _Ptrnext$[rbp], rax + 001d2 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 +?_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 +; 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 -; 566 : mbstate_t _Mbst2 = {}; +; 76 : __declspec(allocator) static void* _Allocate(const size_t _Bytes) { - 0015f 48 8d 85 28 01 - 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb +$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:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 77 : return ::operator new(_Bytes); + + 00036 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 -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 78 : } - 00172 eb 4d jmp SHORT $LN7@Maklocstr -$LN5@Maklocstr: - 00174 48 63 85 84 00 - 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 - 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 - 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 - 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 - 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 - 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -$LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 00042 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 +?_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\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 -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 645 : _NODISCARD static constexpr long long(max)() noexcept { - 001c8 48 8b 85 30 02 - 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 - 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 - 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 - 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 - 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr +$LN3: + 00000 40 55 push rbp + 00002 57 push rdi + 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 -; 570 : break; +; 646 : return LLONG_MAX; - 00201 eb 05 jmp SHORT $LN6@Maklocstr -$LN10@Maklocstr: + 0002a 48 b8 ff ff ff + ff ff ff ff 7f mov rax, 9223372036854775807 ; 7fffffffffffffffH -; 571 : } -; 572 : } +; 647 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr -$LN6@Maklocstr: + 00034 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 +?max@?$numeric_limits@_J@std@@SA_JXZ ENDP ; std::numeric_limits<__int64>::max +_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 +; COMDAT ?_Throw_bad_array_new_length@std@@YAXXZ +_TEXT SEGMENT +$T1 = 200 +?_Throw_bad_array_new_length@std@@YAXXZ PROC ; std::_Throw_bad_array_new_length, COMDAT -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 320 : [[noreturn]] inline void _Throw_bad_array_new_length() { - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax +$LN3: + 00000 40 55 push rbp + 00002 57 push rdi + 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 -; 575 : -; 576 : return _Ptrdest; +; 321 : _THROW(bad_array_new_length{}); - 00214 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] -$LN11@Maklocstr: + 0002a 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 + 00 00 lea rdx, OFFSET FLAT:_TI3?AVbad_array_new_length@std@@ + 0003d 48 8d 8d c8 00 + 00 00 lea rcx, QWORD PTR $T1[rbp] + 00044 e8 00 00 00 00 call _CxxThrowException +$LN2@Throw_bad_: -; 577 : } +; 322 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 - 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 - 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 - 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 -??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr + 00049 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 +?_Throw_bad_array_new_length@std@@YAXXZ ENDP ; std::_Throw_bad_array_new_length _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 +; COMDAT ??_Gbad_array_new_length@std@@UEAAPEAXI@Z _TEXT SEGMENT -_Time$ = 224 -time PROC ; COMDAT +this$ = 224 +__flags$ = 232 +??_Gbad_array_new_length@std@@UEAAPEAXI@Z PROC ; std::bad_array_new_length::`scalar deleting destructor', COMDAT +$LN4: + 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b 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 + 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 + 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete +$LN2@scalar: + 00058 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005f 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 +??_Gbad_array_new_length@std@@UEAAPEAXI@Z ENDP ; std::bad_array_new_length::`scalar deleting destructor' +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ??0bad_array_new_length@std@@QEAA@AEBV01@@Z +_TEXT SEGMENT +this$ = 224 +__that$ = 232 +??0bad_array_new_length@std@@QEAA@AEBV01@@Z PROC ; std::bad_array_new_length::bad_array_new_length, COMDAT +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 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 + 00 00 mov rdx, QWORD PTR __that$[rbp] + 00036 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 + 00 00 mov rax, QWORD PTR this$[rbp] + 00049 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 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005a 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 +??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 +; COMDAT ??1bad_array_new_length@std@@UEAA@XZ +_TEXT SEGMENT +this$ = 224 +??1bad_array_new_length@std@@UEAA@XZ PROC ; std::bad_array_new_length::~bad_array_new_length, 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 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 + 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 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0003d 5f pop rdi + 0003e 5d pop rbp + 0003f 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 +; COMDAT ??0bad_array_new_length@std@@QEAA@XZ +_TEXT SEGMENT +this$ = 224 +??0bad_array_new_length@std@@QEAA@XZ PROC ; std::bad_array_new_length::bad_array_new_length, COMDAT -; 521 : { +; 141 : { +$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:__A0B61CF9_time@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 + +; 140 : : bad_alloc("bad array new length") + + 00036 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:??_C@_0BF@KINCDENJ@bad?5array?5new?5length@ + 0003d 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 -; 522 : return _time64(_Time); +; 141 : { - 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 + 00049 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00050 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 -; 523 : } +; 142 : } - 0002c 48 8d a5 c8 00 + 0005a 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00061 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 + 00068 5f pop rdi + 00069 5d pop rbp + 0006a 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 -; 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 +; COMDAT ??_Gbad_alloc@std@@UEAAPEAXI@Z _TEXT SEGMENT -_Lock$ = 4 -__$ArrayPad$ = 216 -this$ = 256 -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_locked, COMDAT - -; 1095 : void _Orphan_all_locked() noexcept { - +this$ = 224 +__flags$ = 232 +??_Gbad_alloc@std@@UEAAPEAXI@Z PROC ; std::bad_alloc::`scalar deleting destructor', COMDAT +$LN4: + 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b 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 + 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 + 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete +$LN2@scalar: + 00058 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005f 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 +??_Gbad_alloc@std@@UEAAPEAXI@Z ENDP ; std::bad_alloc::`scalar deleting destructor' +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ??0bad_alloc@std@@QEAA@AEBV01@@Z +_TEXT SEGMENT +this$ = 224 +__that$ = 232 +??0bad_alloc@std@@QEAA@AEBV01@@Z PROC ; std::bad_alloc::bad_alloc, COMDAT +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 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 + 00 00 mov rdx, QWORD PTR __that$[rbp] + 00036 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 + 00 00 mov rax, QWORD PTR this$[rbp] + 00049 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 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005a 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 +??0bad_alloc@std@@QEAA@AEBV01@@Z ENDP ; std::bad_alloc::bad_alloc +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT ??1bad_alloc@std@@UEAA@XZ +_TEXT SEGMENT +this$ = 224 +??1bad_alloc@std@@UEAA@XZ PROC ; std::bad_alloc::~bad_alloc, 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 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 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 + 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 + 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 + 00 00 lea rsp, QWORD PTR [rbp+200] + 0003d 5f pop rdi + 0003e 5d pop rbp + 0003f 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 +; COMDAT ??0bad_alloc@std@@AEAA@QEBD@Z +_TEXT SEGMENT +this$ = 224 +_Message$ = 232 +??0bad_alloc@std@@AEAA@QEBD@Z PROC ; std::bad_alloc::bad_alloc, COMDAT -; 1096 : _Lockit _Lock(_LOCK_DEBUG); +; 130 : { - 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 +$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 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 + +; 129 : : exception(_Message, 1) + + 0003b 41 b8 01 00 00 + 00 mov r8d, 1 + 00041 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _Message$[rbp] + 00048 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 -; 1097 : _Orphan_all_unlocked(); +; 130 : { - 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 + 00054 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_7bad_alloc@std@@6B@ + 00062 48 89 08 mov QWORD PTR [rax], rcx -; 1098 : } +; 131 : } - 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 + 00065 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006c 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 +??0bad_alloc@std@@AEAA@QEBD@Z 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.29.30037\include\xmemory -; COMDAT ?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ +; COMDAT ??_Gexception@std@@UEAAPEAXI@Z _TEXT SEGMENT -_Pnext$1 = 8 -this$ = 256 -?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_unlocked, COMDAT +this$ = 224 +__flags$ = 232 +??_Gexception@std@@UEAAPEAXI@Z PROC ; std::exception::`scalar deleting destructor', COMDAT +$LN4: + 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx + 00004 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00009 55 push rbp + 0000a 57 push rdi + 0000b 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00012 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00017 48 8b 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 + 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 + 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete +$LN2@scalar: + 00058 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0005f 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 +??_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 +; COMDAT ?what@exception@std@@UEBAPEBDXZ +_TEXT SEGMENT +tv69 = 192 +this$ = 240 +?what@exception@std@@UEBAPEBDXZ PROC ; std::exception::what, COMDAT -; 1220 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all_unlocked() noexcept { +; 94 : { -$LN6: +$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 08 01 - 00 00 sub rsp, 264 ; 00000108H + 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 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 + 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 + +; 95 : return _Data._What ? _Data._What : "Unknown exception"; + + 00036 48 8b 85 f0 00 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 + 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 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 + 0004b 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0004f 48 89 85 c0 00 + 00 00 mov QWORD PTR tv69[rbp], rax + 00056 eb 0e jmp SHORT $LN4@what +$LN3@what: + 00058 48 8d 05 00 00 + 00 00 lea rax, OFFSET FLAT:??_C@_0BC@EOODALEL@Unknown?5exception@ + 0005f 48 89 85 c0 00 + 00 00 mov QWORD PTR tv69[rbp], rax +$LN4@what: + 00066 48 8b 85 c0 00 + 00 00 mov rax, QWORD PTR tv69[rbp] + +; 96 : } + + 0006d 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 +?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.29.30037\include\xmemory -; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; COMDAT ??1exception@std@@UEAA@XZ _TEXT SEGMENT this$ = 224 -?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT +??1exception@std@@UEAA@XZ PROC ; std::exception::~exception, COMDAT -; 1227 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all() noexcept { +; 89 : { -$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 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 + 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 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 + 0003d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ + 00044 48 89 08 mov QWORD PTR [rax], rcx -; 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(); +; 90 : __std_exception_destroy(&_Data); - 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: + 00047 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 -; 1237 : } -; 1238 : } -; 1239 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1240 : } +; 91 : } - 00038 48 8d a5 c8 00 + 0005b 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 + 00062 5f pop rdi + 00063 5d pop rbp + 00064 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.29.30037\include\xmemory -; COMDAT ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h +; COMDAT ??0exception@std@@QEAA@AEBV01@@Z _TEXT SEGMENT -_Ptr_user$ = 8 -_Ptr_container$ = 40 -_Min_back_shift$ = 72 -_Back_shift$ = 104 -_Ptr$ = 352 -_Bytes$ = 360 -?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z PROC ; std::_Adjust_manually_vector_aligned, COMDAT +this$ = 224 +_Other$ = 232 +??0exception@std@@QEAA@AEBV01@@Z PROC ; std::exception::exception, COMDAT -; 153 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { +; 72 : { -$LN21: +$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 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 + 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 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ + 00049 48 89 08 mov QWORD PTR [rax], rcx -; 158 : const uintptr_t _Ptr_container = _Ptr_user[-1]; +; 71 : : _Data() - 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: + 0004c 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 -; 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"); +; 73 : __std_exception_copy(&_Other._Data, &_Data); - 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 + 00063 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 + 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 -; 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*); +; 74 : } - 000ff 48 c7 45 48 10 - 00 00 00 mov QWORD PTR _Min_back_shift$[rbp], 16 + 00081 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00088 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 +??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 +; COMDAT ??0exception@std@@QEAA@QEBDH@Z +_TEXT SEGMENT +this$ = 224 +_Message$ = 232 +__formal$ = 240 +??0exception@std@@QEAA@QEBDH@Z PROC ; std::exception::exception, COMDAT -; 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; +; 66 : { - 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: +$LN3: + 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d + 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:__E75714E4_vcruntime_exception@h + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00047 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ + 0004e 48 89 08 mov QWORD PTR [rax], rcx -; 172 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); +; 65 : : _Data() - 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 + 00051 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 -; 173 : _Ptr = reinterpret_cast(_Ptr_container); +; 67 : _Data._What = _Message; - 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 + 00068 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 0006f 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR _Message$[rbp] + 00076 48 89 48 08 mov QWORD PTR [rax+8], rcx -; 174 : } +; 68 : } - 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 + 0007a 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + 00081 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 +??0exception@std@@QEAA@QEBDH@Z ENDP ; std::exception::exception _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\wchar.h @@ -3527,33 +18188,82 @@ $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 8d 0d 00 00 + 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:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 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 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy 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 +; COMDAT ??2@YAPEAX_KPEAX@Z +_TEXT SEGMENT +_Size$ = 224 +_Where$ = 232 +??2@YAPEAX_KPEAX@Z PROC ; operator new, COMDAT + +; 167 : { + +$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 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 + +; 168 : (void)_Size; +; 169 : return _Where; + + 0003b 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Where$[rbp] + +; 170 : } + + 00042 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 +??2@YAPEAX_KPEAX@Z ENDP ; operator new +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI ; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\stdio.h ; COMDAT printf _TEXT SEGMENT @@ -3577,75 +18287,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 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 + 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 01 00 00 mov rcx, QWORD PTR [rsp+376] - 0003b 48 8b 05 00 00 + 00039 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 28 01 + 00040 48 33 c5 xor rax, rbp + 00043 48 89 85 28 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 + 0004a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00051 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 957 : int _Result; ; 958 : va_list _ArgList; ; 959 : __crt_va_start(_ArgList, _Format); - 00058 48 8d 85 58 01 + 00056 48 8d 85 58 01 00 00 lea rax, QWORD PTR _Format$[rbp+8] - 0005f 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax + 0005d 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax ; 960 : _Result = _vfprintf_l(stdout, _Format, NULL, _ArgList); - 00063 48 8b 45 28 mov rax, QWORD PTR _ArgList$[rbp] - 00067 48 89 85 18 01 + 00061 48 8b 45 28 mov rax, QWORD PTR _ArgList$[rbp] + 00065 48 89 85 18 01 00 00 mov QWORD PTR tv77[rbp], rax - 0006e b9 01 00 00 00 mov ecx, 1 - 00073 ff 15 00 00 00 + 0006c b9 01 00 00 00 mov ecx, 1 + 00071 ff 15 00 00 00 00 call QWORD PTR __imp___acrt_iob_func - 00079 48 89 85 20 01 + 00077 48 89 85 20 01 00 00 mov QWORD PTR tv75[rbp], rax - 00080 4c 8b 8d 18 01 + 0007e 4c 8b 8d 18 01 00 00 mov r9, QWORD PTR tv77[rbp] - 00087 45 33 c0 xor r8d, r8d - 0008a 48 8b 95 50 01 + 00085 45 33 c0 xor r8d, r8d + 00088 48 8b 95 50 01 00 00 mov rdx, QWORD PTR _Format$[rbp] - 00091 48 8b 8d 20 01 + 0008f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR tv75[rbp] - 00098 e8 00 00 00 00 call _vfprintf_l - 0009d 89 45 04 mov DWORD PTR _Result$[rbp], eax + 00096 e8 00 00 00 00 call _vfprintf_l + 0009b 89 45 04 mov DWORD PTR _Result$[rbp], eax ; 961 : __crt_va_end(_ArgList); - 000a0 48 c7 45 28 00 + 0009e 48 c7 45 28 00 00 00 00 mov QWORD PTR _ArgList$[rbp], 0 ; 962 : return _Result; - 000a8 8b 45 04 mov eax, DWORD PTR _Result$[rbp] + 000a6 8b 45 04 mov eax, DWORD PTR _Result$[rbp] ; 963 : } - 000ab 8b f8 mov edi, eax - 000ad 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000b1 48 8d 15 00 00 + 000a9 8b f8 mov edi, eax + 000ab 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000af 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:printf$rtcFrameData - 000b8 e8 00 00 00 00 call _RTC_CheckStackVars - 000bd 8b c7 mov eax, edi - 000bf 48 8b 8d 28 01 + 000b6 e8 00 00 00 00 call _RTC_CheckStackVars + 000bb 8b c7 mov eax, edi + 000bd 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000c6 48 33 cd xor rcx, rbp - 000c9 e8 00 00 00 00 call __security_check_cookie - 000ce 48 8d a5 38 01 + 000c4 48 33 cd xor rcx, rbp + 000c7 e8 00 00 00 00 call __security_check_cookie + 000cc 48 8d a5 38 01 00 00 lea rsp, QWORD PTR [rbp+312] - 000d5 5f pop rdi - 000d6 5d pop rbp - 000d7 c3 ret 0 + 000d3 5f pop rdi + 000d4 5d pop rbp + 000d5 c3 ret 0 printf ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -3670,33 +18380,39 @@ $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 8d 0d 00 00 + 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:__6DFAE8B8_stdio@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 645 : return __stdio_common_vfprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList); - 0002e e8 00 00 00 00 call __local_stdio_printf_options - 00033 48 8b 8d f8 00 + 00045 e8 00 00 00 00 call __local_stdio_printf_options + 0004a 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _ArgList$[rbp] - 0003a 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 0003f 4c 8b 8d f0 00 + 00051 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 00056 4c 8b 8d f0 00 00 00 mov r9, QWORD PTR _Locale$[rbp] - 00046 4c 8b 85 e8 00 + 0005d 4c 8b 85 e8 00 00 00 mov r8, QWORD PTR _Format$[rbp] - 0004d 48 8b 95 e0 00 + 00064 48 8b 95 e0 00 00 00 mov rdx, QWORD PTR _Stream$[rbp] - 00054 48 8b 08 mov rcx, QWORD PTR [rax] - 00057 ff 15 00 00 00 + 0006b 48 8b 08 mov rcx, QWORD PTR [rax] + 0006e ff 15 00 00 00 00 call QWORD PTR __imp___stdio_common_vfprintf ; 646 : } - 0005d 48 8d a5 c8 00 + 00074 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00064 5f pop rdi - 00065 5d pop rbp - 00066 c3 ret 0 + 0007b 5f pop rdi + 0007c 5d pop rbp + 0007d c3 ret 0 _vfprintf_l ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -3713,27 +18429,31 @@ $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 8d 0d 00 00 + 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:__A2143F22_corecrt_stdio_config@h - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : static unsigned __int64 _OptionsStorage; ; 92 : return &_OptionsStorage; - 0001b 48 8d 05 00 00 + 0002a 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 : } - 00022 48 8d a5 c8 00 + 00031 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00029 5f pop rdi - 0002a 5d pop rbp - 0002b c3 ret 0 + 00038 5f pop rdi + 00039 5d pop rbp + 0003a c3 ret 0 __local_stdio_printf_options ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -3750,18 +18470,25 @@ $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 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] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 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 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -3776,18 +18503,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 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] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 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 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -3802,18 +18536,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 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] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 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 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Main.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Main.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -3826,14 +18567,21 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 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 81674b7..e037e97 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.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 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 -__02E23235_vcruntime_new@h DB 01H +__8906660C_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,59 +33,58 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__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 __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__0A045E7B_NativeCode@h DB 01H -__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 +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_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 msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -116,19 +115,13 @@ 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 ?_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 ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me 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 @@ -164,8 +157,6 @@ 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 @@ -178,7 +169,8 @@ PUBLIC ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; PUBLIC ?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z ; NcInsertLinkAfter PUBLIC ?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z ; NcInsertLinkBefore PUBLIC ?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z ; NcUnlink -PUBLIC ?NcCalcBlockSize@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCalcBlockSize +PUBLIC ?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCountInstructions +PUBLIC ?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCalcBlockSizeInBytes PUBLIC ?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z ; NcChangeLabelId PUBLIC ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId PUBLIC ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z ; NcFixLabelsForBlocks @@ -203,22 +195,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@AEBV01@@Z ; 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 ?_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@AEBV01@@Z ; 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@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?A_TAEBK@Z ; std::vector >::emplace_back +PUBLIC ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@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?A_TAEBK@Z ; std::vector >::_Emplace_back_with_unused_capacity +PUBLIC ??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@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 @@ -238,31 +230,19 @@ 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?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 ??$_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 ??$_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 ??$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 ??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z ; std::_Get_unwrapped 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' @@ -281,16 +261,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@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@_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@_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@_1FG@EMKODCE@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ ; `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@_1DG@PLBPCAEM@?$AA?$CC?$AAI?$AAT?$AAE?$AAR?$AAA?$AAT?$AAO?$AAR?$AA?5?$AAL?$AAI?$AAS?$AAT?$AA?5@ ; `string' -PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@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' @@ -299,8 +279,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@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@_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@_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' @@ -411,409 +391,373 @@ _BSS ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 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+53 + DD imagerel $LN3+76 DD imagerel $unwind$??2@YAPEAX_KPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$__local_stdio_printf_options DD imagerel $LN3 - DD imagerel $LN3+44 + DD imagerel $LN3+59 DD imagerel $unwind$__local_stdio_printf_options pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$_vfprintf_l DD imagerel $LN3 - DD imagerel $LN3+103 + DD imagerel $LN3+126 DD imagerel $unwind$_vfprintf_l pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$printf DD imagerel $LN3 - DD imagerel $LN3+216 + DD imagerel $LN3+214 DD imagerel $unwind$printf pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 DD imagerel $unwind$wmemcpy pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?max@?$numeric_limits@_J@std@@SA_JXZ DD imagerel $LN3 - DD imagerel $LN3+47 + DD imagerel $LN3+62 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+116 + DD imagerel $LN3+139 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+123 + DD imagerel $LN3+146 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+77 + DD imagerel $LN3+101 DD imagerel $unwind$??1exception@std@@UEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?what@exception@std@@UEBAPEBDXZ DD imagerel $LN5 - DD imagerel $LN5+96 + DD imagerel $LN5+119 DD imagerel $unwind$?what@exception@std@@UEBAPEBDXZ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_Gexception@std@@UEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+82 + DD imagerel $LN4+105 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+95 + DD imagerel $LN3+118 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+41 + DD imagerel $LN3+64 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+77 + DD imagerel $LN3+100 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+82 + DD imagerel $LN4+105 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+84 + DD imagerel $LN3+107 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+41 + DD imagerel $LN3+64 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+77 + DD imagerel $LN3+100 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+82 + DD imagerel $LN4+105 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+68 + DD imagerel $LN3+83 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+53 + DD imagerel $LN3+76 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+453 + DD imagerel $LN21+476 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+85 + DD imagerel $LN3+108 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+62 + DD imagerel $LN3+85 DD imagerel $unwind$??0_Container_base12@std@@QEAA@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN4 - DD imagerel $LN4+66 +$pdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD imagerel $LN7 + DD imagerel $LN7+233 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+77 + DD imagerel $LN3+100 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+101 + DD imagerel $LN3+124 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+127 + DD imagerel $LN6+229 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+53 + DD imagerel $LN3+150 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+116 + DD imagerel $LN6+282 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+94 + DD imagerel $LN5+117 DD imagerel $unwind$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$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$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ DD imagerel $LN15 + DD imagerel $LN15+299 + DD imagerel $unwind$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ 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+127 + DD imagerel $LN3+143 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+95 + DD imagerel $LN5+118 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+42 + DD imagerel $LN3+57 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+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 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+72 + DD imagerel $LN3+95 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+356 + 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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_iform_to_iclass DD imagerel xed_iform_to_iclass - DD imagerel xed_iform_to_iclass+77 + DD imagerel xed_iform_to_iclass+99 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+52 + DD imagerel xed_operand_type+75 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+52 + DD imagerel xed_inst_iform_enum+75 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+60 + DD imagerel xed_inst_iclass+83 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+60 + DD imagerel xed_inst_category+83 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+51 + DD imagerel xed_inst_noperands+74 DD imagerel $unwind$xed_inst_noperands pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_relbr DD imagerel xed_relbr - DD imagerel xed_relbr+184 + DD imagerel xed_relbr+182 DD imagerel $unwind$xed_relbr pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_inst1 DD imagerel xed_inst1 - DD imagerel xed_inst1+184 + DD imagerel xed_inst1+207 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+55 + DD imagerel xed_decoded_inst_inst+78 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+66 + DD imagerel xed_decoded_inst_get_category+89 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+66 + DD imagerel xed_decoded_inst_get_iclass+89 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+67 + DD imagerel xed_decoded_inst_noperands+90 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+157 + DD imagerel xed_decoded_inst_set_mode+155 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+55 + DD imagerel xed_decoded_inst_get_length+78 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+198 + DD imagerel $LN3+221 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+117 + DD imagerel $LN4+140 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+238 + DD imagerel $LN6+261 DD imagerel $unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z pdata ENDS ; COMDAT pdata @@ -825,271 +769,283 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1_NATIVE_CODE_LINK@@QEAA@XZ DD imagerel $LN4 - DD imagerel $LN4+90 + DD imagerel $LN4+114 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+82 + DD imagerel $LN4+105 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+48 + DD imagerel $LN3+71 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+77 + DD imagerel $LN3+100 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+66 + DD imagerel $LN3+89 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+51 + DD imagerel $LN3+74 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+137 + DD imagerel $LN3+160 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+65 + DD imagerel $LN3+88 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+125 + DD imagerel $LN3+148 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+121 + DD imagerel $LN3+144 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+121 + DD imagerel $LN3+144 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+52 + DD imagerel $LN3+75 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+52 + DD imagerel $LN3+75 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+75 + DD imagerel $LN3+98 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+102 + DD imagerel $LN3+125 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+75 + DD imagerel $LN3+98 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+97 + DD imagerel $LN3+120 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+97 + DD imagerel $LN3+120 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+119 + DD imagerel $LN3+142 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+85 + DD imagerel $LN3+108 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+168 + DD imagerel $LN5+200 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+299 + DD imagerel $LN4+322 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+49 + DD imagerel $LN3+64 DD imagerel $unwind$?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ pdata ENDS ; COMDAT pdata pdata SEGMENT -$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 +$pdata$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD imagerel $LN9 + DD imagerel $LN9+267 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+56 + DD imagerel $LN3+80 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+56 + DD imagerel $LN3+80 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+105 + DD imagerel $LN3+128 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+48 + DD imagerel $LN3+71 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+48 + DD imagerel $LN3+71 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+115 + DD imagerel $LN4+138 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+218 + DD imagerel $LN7+241 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+216 + DD imagerel $LN7+239 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+145 + DD imagerel $LN5+168 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+148 + DD imagerel $LN5+171 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+127 + DD imagerel $LN6+150 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+140 - DD imagerel $unwind$?NcCalcBlockSize@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z +$pdata$?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN7 + DD imagerel $LN7+154 + DD imagerel $unwind$?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN7 + DD imagerel $LN7+163 + DD imagerel $unwind$?NcCalcBlockSizeInBytes@@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+162 + DD imagerel $LN8+185 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+491 + DD imagerel $LN9+518 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+623 + DD imagerel $LN17+675 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+406 + DD imagerel $LN10+429 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+389 + DD imagerel $LN10+412 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+689 + DD imagerel $LN18+687 DD imagerel $unwind$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT pdata @@ -1101,13 +1057,13 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z DD imagerel $LN23 - DD imagerel $LN23+391 + DD imagerel $LN23+414 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+472 + DD imagerel $LN14+495 DD imagerel $unwind$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z pdata ENDS ; COMDAT pdata @@ -1125,31 +1081,31 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN12 - DD imagerel $LN12+500 + DD imagerel $LN12+498 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+79 + DD imagerel $LN3+102 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+277 + DD imagerel $LN13+300 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+948 + DD imagerel $LN21+946 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+541 + DD imagerel $LN13+564 DD imagerel $unwind$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z pdata ENDS ; COMDAT pdata @@ -1161,103 +1117,103 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z DD imagerel $LN9 - DD imagerel $LN9+257 + DD imagerel $LN9+280 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+201 + DD imagerel $LN10+224 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+327 + DD imagerel $LN11+350 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+338 + DD imagerel $LN10+361 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+107 + DD imagerel $LN3+130 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+118 + DD imagerel $LN5+141 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+101 + DD imagerel $LN5+124 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+208 + DD imagerel $LN12+231 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+351 + DD imagerel $LN21+374 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+69 + DD imagerel $LN3+92 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+41 + DD imagerel $LN3+64 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@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$??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 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+57 + DD imagerel $LN3+80 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+41 + DD imagerel $LN3+64 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@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$??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 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+72 + DD imagerel $LN3+95 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+241 + DD imagerel $LN7+264 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 @@ -1275,91 +1231,91 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$log2@H$0A@@@YANH@Z DD imagerel $LN3 - DD imagerel $LN3+54 + DD imagerel $LN3+77 DD imagerel $unwind$??$log2@H$0A@@@YANH@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+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$??$?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 ENDS ; COMDAT pdata pdata SEGMENT -$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$?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$??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$?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$??$?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$??$?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 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+1097 - DD imagerel $unwind$??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z +$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 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$??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 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$??$?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 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+48 + DD imagerel $LN3+71 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?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$??$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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$forward@AEBK@std@@YAAEBKAEBK@Z DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 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?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$??$_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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Unfancy@K@std@@YAPEAKPEAK@Z DD imagerel $LN3 - DD imagerel $LN3+48 + DD imagerel $LN3+71 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+106 + DD imagerel $LN3+121 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+593 + DD imagerel $LN13+616 DD imagerel $unwind$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z pdata ENDS ; COMDAT pdata @@ -1371,43 +1327,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+66 + DD imagerel $LN3+89 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+53 + DD imagerel $LN3+76 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+79 + DD imagerel $LN3+102 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+133 + DD imagerel $LN3+156 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+148 + DD imagerel $LN4+171 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+120 + DD imagerel $LN4+143 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+261 + DD imagerel $LN7+284 DD imagerel $unwind$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z pdata ENDS ; COMDAT pdata @@ -1419,213 +1375,135 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??1sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD imagerel $LN6 - DD imagerel $LN6+116 + DD imagerel $LN6+139 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+52 + DD imagerel $LN3+75 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+119 + DD imagerel $LN5+142 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+48 + DD imagerel $LN3+71 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+51 + DD imagerel $LN3+75 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+91 + DD imagerel $LN4+114 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+94 + DD imagerel $LN5+117 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+98 + DD imagerel $LN4+121 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+48 + DD imagerel $LN3+71 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+48 + DD imagerel $LN3+71 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+65 + DD imagerel $LN3+88 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?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$??$_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 ENDS ; COMDAT pdata pdata SEGMENT -$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$??$_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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z DD imagerel $LN3 - DD imagerel $LN3+104 + DD imagerel $LN3+127 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+73 + DD imagerel $LN3+91 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+277 + DD imagerel $LN13+300 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 $LN7 - DD imagerel $LN7+342 +$pdata$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DD imagerel $LN3 + DD imagerel $LN3+168 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+94 + DD imagerel $LN4+117 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+123 + DD imagerel $LN7+146 DD imagerel $unwind$??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT -$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$??$_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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z DD imagerel $LN3 - DD imagerel $LN3+196 + DD imagerel $LN3+156 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+48 + DD imagerel $LN3+71 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 @@ -1824,9 +1702,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@MBPFCBOF@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ +; COMDAT ??_C@_1MO@KFAGNMIJ@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ CONST SEGMENT -??_C@_1MO@MBPFCBOF@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ DB 'C' +??_C@_1MO@KFAGNMIJ@?$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 @@ -1839,16 +1717,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, '9', 00H, '.', 00H, '3', 00H, '0', 00H, '0', 00H - DB '3', 00H, '7', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' + 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, '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@IJJCCHP@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GH@HACIOKNJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_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' +??_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' CONST ENDS ; COMDAT ??_C@_0BO@CAOBBIOC@vector?5iterators?5incompatible@ CONST SEGMENT @@ -1886,21 +1764,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@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@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' +??_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' 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 @@ -1911,16 +1789,15 @@ CONST SEGMENT DB 'P', 00H, 'T', 00H, 'E', 00H, 'D', 00H, '!', 00H, '"', 00H, 00H DB 00H ; `string' CONST ENDS -; COMDAT ??_C@_1FG@EMKODCE@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ +; COMDAT ??_C@_1EE@KLDMFDFL@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ CONST SEGMENT -??_C@_1FG@EMKODCE@?$AAs?$AAt?$AAd?$AA?3?$AA?3?$AA_?$AAI?$AAt?$AAe?$AAr?$AAa?$AAt?$AAo?$AAr?$AA_@ DB 's' +??_C@_1EE@KLDMFDFL@?$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, 'u', 00H, 'n', 00H, 'l', 00H, 'o', 00H, 'c', 00H, 'k' - DB 00H, 'e', 00H, 'd', 00H, 00H, 00H ; `string' + DB 00H, 00H ; `string' CONST ENDS ; COMDAT ??_C@_0BJ@LFDBABJJ@ITERATOR?5LIST?5CORRUPTED?$CB@ CONST SEGMENT @@ -1944,9 +1821,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@FOAKNOEL@?$AAC?$AA?3?$AA?2?$AAP?$AAr?$AAo?$AAg?$AAr?$AAa?$AAm?$AA?5?$AAF?$AAi?$AAl?$AAe@ +; COMDAT ??_C@_1NA@FEEOBALC@?$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' +??_C@_1NA@FEEOBALC@?$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 @@ -1959,16 +1836,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, '9', 00H, '.', 00H, '3', 00H, '0', 00H, '0', 00H - DB '3', 00H, '7', 00H, '\', 00H, 'i', 00H, 'n', 00H, 'c', 00H, 'l' + 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, '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@ +; COMDAT ??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@KDIDHNIL@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@JMEOMKJO@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xmemory', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xmemory', 00H ; `string' CONST ENDS ; COMDAT ??_C@_02DKCKIIND@?$CFs@ CONST SEGMENT @@ -1980,7 +1857,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 099H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var +?__LINE__Var@?0??_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z@4JA DD 084H ; `std::_Adjust_manually_vector_aligned'::`1'::__LINE__Var _DATA ENDS ; COMDAT _CT??_R0?AVexception@std@@@8??0exception@std@@QEAA@AEBV01@@Z24 xdata$x SEGMENT @@ -2072,301 +1949,238 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$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 +$ip2state$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$forward@K@std@@YA$$QEAKAEAK@Z DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$cppxdata$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z DB 060H + DD imagerel $ip2state$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z DD 025051301H +$unwind$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z DD 025052a19H 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 xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z DD 025051301H +$unwind$??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Emplace_back@K@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX$$QEAK@Z DD 025051801H - DD 01132318H - DD 0700c0021H - DD 0500bH +$unwind$??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z DD 025053901H + DD 011d2322H + DD 07016001dH + DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__autoclassinit2@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX_K@Z DD 05051601H - DD 01130316H - DD 0700c0019H - DD 0500bH +$unwind$??$_Get_size_of_n@$03@std@@YA_K_K@Z DD 025052a01H + DD 010e2313H + DD 070070025H + DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Release@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAPEAKXZ DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$unwind$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DD 025053901H + DD 011d2322H + DD 070160025H + DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ DD 025051301H - DD 010e2313H - DD 07007001dH +$unwind$??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z DD 035052a01H + DD 010e3313H + DD 07007002bH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@PEAKAEAV?$allocator@K@1@@Z DD 025051d01H - DD 0118231dH - DD 07011001dH - DD 05010H +$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 xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Copy_memmove@PEAKPEAK@std@@YAPEAKPEAK00@Z DD 025051d01H +$unwind$??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z DD 025053401H DD 0118231dH - DD 070110039H + DD 070110021H DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$move@AEAK@std@@YA$$QEAKAEAK@Z DD 025051301H +$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 DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z DD 025051301H +$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 DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$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 xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z DD 025052201H - DD 011d2322H - DD 07016001dH - DD 05015H +$ip2state$??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Get_size_of_n@$03@std@@YA_K_K@Z DD 025051301H - DD 010e2313H - DD 070070025H - DD 05006H +$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 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$?dtor$0@?0???$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z@4HA DD 031001H - DD 0700c4210H - DD 0500bH +$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 xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z DB 02H +$ip2state$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DB 02H DB 00H DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$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 +$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 xdata ENDS ; COMDAT xdata xdata SEGMENT -$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 +$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 xdata ENDS ; COMDAT xdata xdata SEGMENT -$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 +$ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 02H + DB 00H 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 -$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 +$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$??$_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 +$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025052f19H 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$??$_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 +$unwind$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z DD 025052a01H 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?A_TAEAV?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@0@@Z DD 025051301H +$unwind$??$_Get_size_of_n@$0BA@@std@@YA_K_K@Z DD 025052a01H DD 010e2313H - DD 07007001dH + DD 070070025H 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 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 +$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 -$unwind$??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$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$??$addressof@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@AEAU10@@Z DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$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 xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 02H +$ip2state$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DB 02H DB 00H DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 060H - DD imagerel $ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025051819H - DD 01132318H - DD 0700c001dH - DD 0500bH - DD imagerel __CxxFrameHandler4 - DD imagerel $cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z +$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 xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Allocate@$0BA@U_Default_allocate_traits@std@@$0A@@std@@YAPEAX_K@Z DD 025051301H +$unwind$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DD 025052a19H 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 -$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 +$ip2state$??$min@_K@std@@YAAEB_KAEB_K0@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Unfancy@U_Container_proxy@std@@@std@@YAPEAU_Container_proxy@0@PEAU10@@Z DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$cppxdata$??$min@_K@std@@YAAEB_KAEB_K0@Z DB 060H + DD imagerel $ip2state$??$min@_K@std@@YAAEB_KAEB_K0@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$min@_K@std@@YAAEB_KAEB_K0@Z DD 025051801H +$unwind$??$min@_K@std@@YAAEB_KAEB_K0@Z DD 025052f19H 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 025051301H +$unwind$??Bsentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEBA_NXZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H @@ -2384,18 +2198,13 @@ $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 025051319H +$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 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 @@ -2407,7 +2216,7 @@ xdata SEGMENT $ip2state$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DB 06H DB 00H DB 00H - DB 'p' + DB 09eH DB 02H DB 0f1H, 02H DB 00H @@ -2426,7 +2235,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 025051811H +$unwind$??0sentry@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025052f11H DD 01132318H DD 0700c0021H DD 0500bH @@ -2446,7 +2255,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 025051319H +$unwind$??1_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@XZ DD 025052a19H DD 010e2313H DD 070070021H DD 05006H @@ -2455,44 +2264,65 @@ $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 025051801H +$unwind$??0_Sentry_base@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@AEAV12@@Z DD 025052f01H 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 025051801H +$unwind$??$_Alloc_proxy@V?$allocator@U_Container_proxy@std@@@std@@@_Container_base12@std@@QEAAX$$QEAV?$allocator@U_Container_proxy@std@@@1@@Z DD 025052f01H DD 01132318H DD 0700c0025H DD 0500bH 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 025051701H +$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 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 -$unwind$??$?0K@?$allocator@U_Container_proxy@std@@@std@@QEAA@AEBV?$allocator@K@1@@Z DD 025051801H +$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 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 025051801H +$unwind$?allocate@?$allocator@U_Container_proxy@std@@@std@@QEAAPEAU_Container_proxy@2@_K@Z DD 025052f01H 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 @@ -2504,7 +2334,7 @@ xdata SEGMENT $ip2state$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z DB 06H DB 00H DB 00H - DB 'm', 04H + DB 0c9H, 04H DB 02H DB 0ddH, 03H DB 00H @@ -2539,7 +2369,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 025051d19H +$unwind$??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z DD 025053419H DD 0118231dH DD 07011004bH DD 05010H @@ -2548,61 +2378,113 @@ $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 025051d01H +$unwind$??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z DD 025053401H DD 0118231dH DD 070110021H DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Unfancy@K@std@@YAPEAKPEAK@Z DD 025051301H +$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 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?A_TAEBK@Z DD 025051801H +$unwind$??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z DD 025052f01H DD 01132318H DD 0700c002bH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$forward@AEBK@std@@YAAEBKAEBK@Z DD 025051301H +$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 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?A_TAEBK@Z DD 025051801H +$unwind$??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z DD 025052f01H DD 01132318H DD 0700c002bH DD 0500bH 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 025051301H +$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 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 @@ -2620,7 +2502,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 0caH + DB 0c6H DB 02H DB 011H, 02H DB 04H @@ -2661,7 +2543,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 025054119H +$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 @@ -2686,49 +2568,24 @@ CONST SEGMENT CONST 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 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 +$ip2state$??$log2@H$0A@@@YANH@Z DB 02H + DB 00H + DB 00H 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 025051801H - DD 01132318H - DD 0700c001fH - DD 0500bH +$cppxdata$??$log2@H$0A@@@YANH@Z DB 060H + DD imagerel $ip2state$??$log2@H$0A@@@YANH@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$log2@H$0A@@@YANH@Z DD 035051201H +$unwind$??$log2@H$0A@@@YANH@Z DD 035052819H 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 @@ -2746,7 +2603,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 'X' + DB 086H DB 04H DB 'm', 02H DB 02H @@ -2769,7 +2626,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 025052211H +$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 DD 011d2322H DD 070160027H DD 05015H @@ -2778,121 +2635,129 @@ $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 025051d01H +$unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@PEAKPEBU_Container_base12@1@@Z DD 025053401H 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@AEBV01@@Z DD 025051801H +$unwind$??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z DD 025052f01H 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 025051301H +$unwind$??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD 025052a01H 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 025051301H +$unwind$?_Unwrapped@?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAPEAKXZ DD 025052a01H 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@AEBV01@@Z DD 025051801H +$unwind$??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z DD 025052f01H 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 025051301H +$unwind$??1?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ DD 025052a01H 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 025051801H +$unwind$?_Seek_to@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAAXPEBK@Z DD 025052f01H 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 035051801H +$unwind$?_Verify_range@std@@YAXAEBV?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@1@0@Z DD 035052f01H 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 035051801H +$unwind$?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z DD 035052f01H 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 025051801H +$unwind$??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD 025052f01H 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 025051801H +$unwind$??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z DD 025052f01H DD 01132318H DD 0700c001fH DD 0500bH 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 025051d01H +$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 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 025051301H +$unwind$?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H DD 010e2313H DD 070070035H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051301H +$unwind$?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H DD 010e2313H DD 070070029H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051301H +$unwind$?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H DD 010e2313H DD 07007002dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z DD 025051801H +$unwind$?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z DD 025052f01H 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 @@ -2904,7 +2769,7 @@ xdata SEGMENT $ip2state$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z DB 06H DB 00H DB 00H - DB 0b6H + DB 0e4H DB 02H DB 'p' DB 00H @@ -2923,21 +2788,16 @@ $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 025051d11H +$unwind$?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z DD 025053411H 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 035063e19H +$unwind$?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 035063c19H DD 010f3314H DD 0700800e6H DD 050066007H @@ -3061,26 +2921,21 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z DD 025051801H +$unwind$?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z DD 025052f01H DD 01132318H DD 0700c0029H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z DD 025051801H +$unwind$?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z DD 025052f01H 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 025054719H +$unwind$?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD 025054519H DD 0118231dH DD 070110037H DD 05010H @@ -3100,16 +2955,6 @@ 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 @@ -3127,7 +2972,7 @@ xdata SEGMENT $ip2state$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DB 0aH DB 00H DB 00H - DB 082H + DB 0b0H DB 02H DB 08aH DB 00H @@ -3152,7 +2997,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 035051311H +$unwind$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DD 035052a11H DD 010e3313H DD 07007003bH DD 05006H @@ -3161,21 +3006,11 @@ $unwind$?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z DD 035051311H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z DD 025051701H +$unwind$?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z DD 025052e01H 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 @@ -3187,7 +3022,7 @@ xdata SEGMENT $ip2state$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 06H DB 00H DB 00H - DB 'y', 07H + DB 'q', 07H DB 02H DB 084H DB 00H @@ -3206,7 +3041,7 @@ $cppxdata$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 025053d19H +$unwind$?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 025053b19H DD 010e2313H DD 07007004bH DD 05006H @@ -3242,38 +3077,116 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z DD 025051d01H +$unwind$?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z DD 025053401H 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 025051d01H +$unwind$?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z DD 025053401H DD 0118231dH DD 070110021H DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z DD 025051801H +$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 DD 01132318H - DD 0700c0055H + 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 0500bH +xdata 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 voltbl -voltbl SEGMENT -_volmd DW 036H - DW 01d2H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025053d19H +$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 DD 010e2313H - DD 070070051H + DD 070070053H DD 05006H - DD imagerel __GSHandlerCheck - DD 0270H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z + DD 0282H xdata ENDS ; COMDAT CONST CONST SEGMENT @@ -3302,271 +3215,381 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z DD 025051c01H +$unwind$?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z DD 025053301H DD 0117231cH DD 070100021H DD 0500fH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcCalcBlockSize@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051301H +$unwind$?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H DD 010e2313H DD 070070025H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z DD 025051301H +$unwind$?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H + DD 010e2313H + DD 070070025H + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD 025051801H +$unwind$?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD 025051801H +$unwind$?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD 025051801H +$unwind$?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD 025051801H +$unwind$?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025051301H +$unwind$??0_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEBAAEBV?$allocator@K@2@XZ DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$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 xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Get_first@?$_Compressed_pair@V?$allocator@K@std@@V?$_Vector_val@U?$_Simple_types@K@std@@@2@$00@std@@QEAAAEAV?$allocator@K@2@XZ DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$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$??0?$_Vector_val@U?$_Simple_types@K@std@@@std@@QEAA@XZ DD 025051301H +$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 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 -$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DD 025051301H +$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 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 -$unwind$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DD 025051301H +$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 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 -$unwind$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD 025051d01H - DD 0118231dH - DD 07011001dH - DD 05010H +$ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEBAAEBV?$allocator@K@2@XZ DB 02H + DB 00H + DB 00H 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$?dtor$0@?0??_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z@4HA DD 031001H - DD 0700c4210H - DD 0500bH +$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 xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DB 06H - DB 00H +$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 +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?_Getal@?$vector@KV?$allocator@K@std@@@std@@AEAAAEAV?$allocator@K@2@XZ DB 02H DB 00H - DB 0c6H - DB 02H - DB '6' DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$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 +$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 -$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 +$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 xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD 025054719H +$unwind$?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z DD 025054519H DD 0118231dH - DD 070110021H + DD 070110029H DD 05010H - DD imagerel __GSHandlerCheck_EH4 - DD imagerel $cppxdata$?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z - DD 0faH + DD imagerel __GSHandlerCheck + DD 0138H xdata ENDS ; COMDAT CONST CONST SEGMENT -?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcName$0 DB 05fH ; std::vector >::_Orphan_range_locked +?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcName$0 DB 05fH ; std::vector >::_Orphan_range DB 04cH DB 06fH DB 063H DB 06bH DB 00H ORG $+10 -?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcVarDesc DD 024H ; std::vector >::_Orphan_range_locked +?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcVarDesc DD 024H ; std::vector >::_Orphan_range DD 04H - DQ FLAT:?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcName$0 + DQ FLAT:?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcName$0 ORG $+48 -?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcFrameData DD 01H ; std::vector >::_Orphan_range_locked +?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcFrameData DD 01H ; std::vector >::_Orphan_range DD 00H - DQ FLAT:?_Orphan_range_locked@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcVarDesc + DQ FLAT:?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT -$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 +$unwind$?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ DD 025051e01H 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 025052201H +$unwind$?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z DD 025053901H 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 025051801H +$unwind$?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z DD 025052f01H DD 01132318H - DD 0700c0029H + DD 0700c0025H DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025051d01H +$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025053401H 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 035052201H +$unwind$?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z DD 035053901H 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 025052201H +$unwind$?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z DD 025053901H DD 011d2322H DD 07016001dH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z DD 025052201H +$unwind$?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z DD 025053901H DD 011d2322H DD 07016001dH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?capacity@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025051301H +$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 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 -$unwind$?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025051301H +$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 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 025051301H +$unwind$?size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ DD 025052a19H 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 025051301H +$unwind$?_Unchecked_end@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DD 025052a19H 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 025051301H +$unwind$?_Unchecked_begin@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKXZ DD 025052a19H 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 -$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 +$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 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 -$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 +$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 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 @@ -3581,7 +3604,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 025051319H +$unwind$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ DD 025052a19H DD 010e2313H DD 070070029H DD 05006H @@ -3590,7 +3613,7 @@ $unwind$?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ DD 025051319H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z DD 025051801H +$unwind$?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH @@ -3608,7 +3631,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 025051319H +$unwind$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025052a19H DD 010e2313H DD 070070025H DD 05006H @@ -3617,51 +3640,85 @@ $unwind$??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ DD 025051319H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?max_size@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SA_KAEBV?$allocator@K@2@@Z DD 025051301H +$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 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 025051801H +$unwind$?allocate@?$allocator@K@std@@QEAAPEAK_K@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025051d01H +$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0?$allocator@K@std@@QEAA@XZ DD 025051301H +$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 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 025051701H +$unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD 025052e01H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1_NATIVE_CODE_LINK@@QEAA@XZ DD 025051301H +$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 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 @@ -3673,7 +3730,7 @@ xdata SEGMENT $ip2state$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z DB 06H DB 00H DB 00H - DB 't' + DB 0a2H DB 02H DB 08dH, 02H DB 00H @@ -3692,7 +3749,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 025052111H +$unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z DD 025053811H DD 011c2321H DD 070150021H DD 05014H @@ -3701,33 +3758,28 @@ $unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z DD 025052111H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051c01H +$unwind$??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z DD 025053301H DD 0117231cH DD 07010001dH DD 0500fH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_NATIVE_CODE_LINK@@QEAA@XZ DD 025051301H +$unwind$??0_NATIVE_CODE_LINK@@QEAA@XZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_decoded_inst_get_length DD 025051301H +$unwind$xed_decoded_inst_get_length DD 025052a01H 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 025054619H +$unwind$xed_decoded_inst_set_mode DD 025054419H DD 0117231cH DD 070100021H DD 0500fH @@ -3754,47 +3806,42 @@ xed_decoded_inst_set_mode$rtcFrameData DD 01H CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_decoded_inst_noperands DD 025051301H +$unwind$xed_decoded_inst_noperands DD 025052a01H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_decoded_inst_get_iclass DD 025051301H +$unwind$xed_decoded_inst_get_iclass DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_decoded_inst_get_category DD 025051301H +$unwind$xed_decoded_inst_get_category DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_decoded_inst_inst DD 025051301H +$unwind$xed_decoded_inst_inst DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst1 DD 025062301H +$unwind$xed_inst1 DD 025063a01H 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 025064719H +$unwind$xed_relbr DD 025064519H DD 0118231dH DD 070110026H DD 0500f6010H @@ -3816,89 +3863,84 @@ xed_relbr$rtcFrameData DD 01H CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst_noperands DD 025051301H +$unwind$xed_inst_noperands DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst_category DD 025051301H +$unwind$xed_inst_category DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst_iclass DD 025051301H +$unwind$xed_inst_iclass DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst_iform_enum DD 025051301H +$unwind$xed_inst_iform_enum DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_operand_type DD 025051301H +$unwind$xed_operand_type DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_iform_to_iclass DD 025051201H +$unwind$xed_iform_to_iclass DD 025052801H 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 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?hex@std@@YAAEAVios_base@1@AEAV21@@Z DD 025051301H +$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 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -3943,343 +3985,553 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?eof@?$_Narrow_char_traits@DH@std@@SAHXZ DD 025050f01H +$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 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 -$unwind$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DD 025051801H - DD 01132318H - DD 0700c001fH - DD 0500bH +$ip2state$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z DB 02H + DB 00H + DB 00H 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 025051801H +$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 DD 01132318H - DD 0700c0021H + DD 0700c001fH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?eq_int_type@?$_Narrow_char_traits@DH@std@@SA_NAEBH0@Z xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DB 036H - DB 07eH -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ DD 025053d19H - DD 010e2313H - DD 070070021H - DD 05006H - DD imagerel __GSHandlerCheck - DD 0f8H -xdata ENDS -; COMDAT CONST -CONST SEGMENT -?_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 +$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 - ORG $+10 -?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ$rtcVarDesc DD 024H ; std::_Iterator_base12::_Orphan_me_locked - DD 04H - 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:?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ$rtcVarDesc -CONST ENDS + DB 00H +xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_me_unlocked@_Iterator_base12@std@@AEAAXXZ DD 035051301H - DD 010e3313H - DD 070070027H - DD 05006H +$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 voltbl -voltbl SEGMENT -_volmd DB 03bH - DB 08aH -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z DD 025054219H +$unwind$??$_Construct_in_place@U_Container_proxy@std@@PEAU_Container_base12@2@@std@@YAXAEAU_Container_proxy@0@$$QEAPEAU_Container_base12@0@@Z DD 025052f19H DD 01132318H DD 0700c0021H DD 0500bH - DD imagerel __GSHandlerCheck - DD 0f8H + 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 CONST -CONST SEGMENT -?_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 -?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z$rtcVarDesc DD 024H ; std::_Iterator_base12::_Adopt_locked - DD 04H - DQ FLAT:?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z$rtcName$0 - ORG $+48 -?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z$rtcFrameData DD 01H ; std::_Iterator_base12::_Adopt_locked - DD 00H - DQ FLAT:?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z$rtcVarDesc -CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Adopt_unlocked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z DD 025051801H - DD 01132318H - DD 0700c001dH - DD 0500bH +$ip2state$?_Orphan_me@_Iterator_base12@std@@QEAAXXZ DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ DD 025051301H - DD 010e2313H - DD 07007001fH - DD 05006H +$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_v2@_Iterator_base12@std@@QEAAXXZ DD 025051301H - DD 010e2313H - DD 07007001dH +$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 -$unwind$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z DD 025051801H - DD 01132318H - DD 0700c0021H - DD 0500bH +$ip2state$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1_Iterator_base12@std@@QEAA@XZ DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$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 xdata xdata SEGMENT -$unwind$??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z DD 025051801H - DD 01132318H - DD 0700c001dH - DD 0500bH +$unwind$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ DD 025052a19H + DD 010e2313H + DD 07007001fH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Getcont@_Iterator_base12@std@@QEBAPEBU_Container_base12@2@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_Iterator_base12@std@@QEAA@AEBU01@@Z DD 025051801H - DD 01132318H - DD 0700c001dH - DD 0500bH +$ip2state$?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z DB 02H + DB 00H + DB 00H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_Iterator_base12@std@@QEAA@XZ DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H +$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 voltbl -voltbl SEGMENT -_volmd DB 036H - DB 07eH -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ DD 025053d19H - DD 010e2313H - DD 070070021H - DD 05006H - DD imagerel __GSHandlerCheck - DD 0f8H +$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 xdata ENDS ; COMDAT CONST CONST SEGMENT -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all_locked +?_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 $+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 + ORG $+2 +?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z$rtcName$1 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$rtcVarDesc DD 064H ; std::_Iterator_base12::_Adopt + DD 04H + DQ FLAT:?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z$rtcName$1 + DD 044H + 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 + DD 00H + DQ FLAT:?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z$rtcVarDesc CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ DD 025051301H +$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 +xdata 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 +xdata ENDS +; COMDAT CONST +CONST SEGMENT +??1_Iterator_base12@std@@QEAA@XZ$rtcName$0 DB 05fH ; std::_Iterator_base12::~_Iterator_base12 + 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 + DD 04H + DQ FLAT:??1_Iterator_base12@std@@QEAA@XZ$rtcName$0 + ORG $+48 +??1_Iterator_base12@std@@QEAA@XZ$rtcFrameData DD 01H ; std::_Iterator_base12::~_Iterator_base12 + DD 00H + DQ FLAT:??1_Iterator_base12@std@@QEAA@XZ$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z DB 02H + DB 00H + DB 00H +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 +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z DD 025054019H + 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 xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ DD 025051301H +$unwind$??0_Iterator_base12@std@@QEAA@AEBU01@@Z DD 025052f19H + 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 +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0_Iterator_base12@std@@QEAA@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0_Iterator_base12@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_Container_base12@std@@QEAA@XZ DD 025051301H +$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 + DD 010e2313H + DD 070070025H + DD 05006H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ + DD 011bH +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all + 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 + DD 04H + DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 + ORG $+48 +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all + DD 00H + DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$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 +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0_Container_base12@std@@QEAA@XZ DD 025052a19H DD 010e2313H DD 07007001dH DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0_Container_base12@std@@QEAA@XZ xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DD 025051801H +$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 +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??0_Container_proxy@std@@QEAA@PEAU_Container_base12@1@@Z DD 025052f19H 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 035051801H +$unwind$?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z DD 035052f01H DD 01133318H DD 0700c002fH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z DD 025051301H +$unwind$?_Allocate@_Default_allocate_traits@std@@SAPEAX_K@Z DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Throw_bad_array_new_length@std@@YAXXZ DD 025050f01H +$unwind$?_Throw_bad_array_new_length@std@@YAXXZ DD 025051e01H DD 010a230fH DD 070030023H DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_Gbad_array_new_length@std@@UEAAPEAXI@Z DD 025051701H +$unwind$??_Gbad_array_new_length@std@@UEAAPEAXI@Z DD 025052e01H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0bad_array_new_length@std@@QEAA@AEBV01@@Z DD 025051801H +$unwind$??0bad_array_new_length@std@@QEAA@AEBV01@@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1bad_array_new_length@std@@UEAA@XZ DD 025051301H +$unwind$??1bad_array_new_length@std@@UEAA@XZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0bad_array_new_length@std@@QEAA@XZ DD 025051301H +$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 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 025051701H +$unwind$??_Gbad_alloc@std@@UEAAPEAXI@Z DD 025052e01H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0bad_alloc@std@@QEAA@AEBV01@@Z DD 025051801H +$unwind$??0bad_alloc@std@@QEAA@AEBV01@@Z DD 025052f01H DD 01132318H DD 0700c001dH DD 0500bH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1bad_alloc@std@@UEAA@XZ DD 025051301H +$unwind$??1bad_alloc@std@@UEAA@XZ DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0bad_alloc@std@@AEAA@QEBD@Z DD 025051801H +$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 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 025051701H +$unwind$??_Gexception@std@@UEAAPEAXI@Z DD 025052e01H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?what@exception@std@@UEBAPEBDXZ DD 025051301H +$unwind$?what@exception@std@@UEBAPEBDXZ DD 025052a01H DD 010e2313H DD 07007001fH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??1exception@std@@UEAA@XZ DD 025051301H +$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 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 -$unwind$??0exception@std@@QEAA@AEBV01@@Z DD 025051801H +$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 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 025051d01H +$unwind$??0exception@std@@QEAA@QEBDH@Z DD 025053419H DD 0118231dH DD 07011001dH DD 05010H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??0exception@std@@QEAA@QEBDH@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?max@?$numeric_limits@_J@std@@SA_JXZ DD 025050f01H +$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 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 025051d01H +$unwind$wmemcpy DD 025053401H 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 025054c19H +$unwind$printf DD 025054a19H DD 011d2322H DD 07016002bH DD 05015H @@ -4308,370 +4560,133 @@ printf$rtcFrameData DD 01H CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$_vfprintf_l DD 035052201H +$unwind$_vfprintf_l DD 035053901H DD 011d3322H DD 07016001fH DD 05015H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$__local_stdio_printf_options DD 025050f01H +$unwind$__local_stdio_printf_options DD 025051e01H DD 010a230fH DD 07003001dH DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??2@YAPEAX_KPEAX@Z DD 025051801H +$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 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 025051d01H +$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025053419H 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 -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H +$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 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 -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$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 DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H - DD 010e2313H - DD 07007001dH - DD 05006H -xdata ENDS -; Function compile flags: /Odt -; COMDAT __JustMyCode_Default -_TEXT SEGMENT -__JustMyCode_Default PROC ; COMDAT - 00000 c2 00 00 ret 0 -__JustMyCode_Default ENDP -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??$construct@KK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAK$$QEAK@Z -_TEXT SEGMENT -$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 - -; 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 - 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 - -; 1444 : return static_cast<_Ty&&>(_Arg); - - 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] - 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.29.30037\include\xutility -; COMDAT ??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z -_TEXT SEGMENT -_Val$ = 224 -??$_To_address@PEAK@std@@YA?A_PAEBQEAK@Z PROC ; std::_To_address, COMDAT - -; 4074 : _NODISCARD constexpr auto _To_address(const _Iter& _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:__7CE971A6_xutility - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 4075 : _STL_INTERNAL_STATIC_ASSERT(is_pointer_v<_Iter>); -; 4076 : return _Val; - - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Val$[rbp] - 00026 48 8b 00 mov rax, QWORD PTR [rax] - -; 4077 : } - - 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.29.30037\include\xmemory -; COMDAT ??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z -_TEXT SEGMENT -_Ptr$ = 224 -??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z PROC ; std::_Refancy, COMDAT - -; 298 : _CONSTEXPR20 _Pointer _Refancy(_Pointer _Ptr) 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 - -; 299 : return _Ptr; - - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Ptr$[rbp] - -; 300 : } - - 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 -??$_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.29.30037\include\xmemory -; COMDAT ??$_Emplace_back@K@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAX$$QEAK@Z -_TEXT SEGMENT -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 - -; 1610 : _CONSTEXPR20_DYNALLOC void _Emplace_back(_Types&&... _Vals) { // construct a new element at *_Last and increment - -$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 - -; 1611 : allocator_traits<_Alloc>::construct(_Al, _Unfancy(_Last), _STD forward<_Types>(_Vals)...); - - 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; - - 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 - -; 1613 : } - - 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] - 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.29.30037\include\xmemory -; COMDAT ?_Release@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAPEAKXZ -_TEXT SEGMENT -this$ = 224 -?_Release@?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAAPEAKXZ PROC ; std::_Uninitialized_backout_al >::_Release, COMDAT - -; 1615 : constexpr pointer _Release() { // suppress any exception handling backout and return _Last - -$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 - -; 1616 : _First = _Last; - - 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 - -; 1617 : return _Last; - - 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] - -; 1618 : } - - 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 +$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 + 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 +_TEXT SEGMENT +__JustMyCode_Default PROC ; COMDAT + 00000 c2 00 00 ret 0 +__JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ +; 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 _TEXT SEGMENT -this$ = 224 -??1?$_Uninitialized_backout_al@V?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::_Uninitialized_backout_al >::~_Uninitialized_backout_al >, COMDAT +_Ptr$ = 224 +??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z PROC ; std::_Refancy, COMDAT -; 1605 : _CONSTEXPR20_DYNALLOC ~_Uninitialized_backout_al() { +; 261 : _Pointer _Refancy(_Pointer _Ptr) noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -4680,96 +4695,44 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1606 : _Destroy_range(_First, _Last, _Al); + 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; - 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 > - -; 1607 : } - - 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 + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] -; 1600 : : _First(_Dest), _Last(_Dest), _Al(_Al_) {} +; 263 : } -$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] - 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] - 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 + 0003d 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 > + 00044 5f pop rdi + 00045 5d pop rbp + 00046 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.29.30037\include\xutility +; 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 _TEXT SEGMENT -_FirstPtr$ = 8 -_LastPtr$ = 40 -_DestPtr$ = 72 -_First_ch$ = 104 -_Last_ch$ = 136 -_Dest_ch$ = 168 -_Count$ = 200 -_First$ = 448 -_Last$ = 456 -_Dest$ = 464 +_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 -; 4153 : _OutCtgIt _Copy_memmove(_CtgIt _First, _CtgIt _Last, _OutCtgIt _Dest) { +; 4113 : _OutIt _Copy_memmove(_InIt _First, _InIt _Last, _OutIt _Dest) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -4777,134 +4740,76 @@ $LN3: 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 + 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:__7CE971A6_xutility - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 4154 : auto _FirstPtr = _To_address(_First); - - 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 - -; 4155 : auto _LastPtr = _To_address(_Last); - - 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 - -; 4156 : auto _DestPtr = _To_address(_Dest); - - 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 - -; 4157 : const char* const _First_ch = const_cast(reinterpret_cast(_FirstPtr)); - - 00059 48 8b 45 08 mov rax, QWORD PTR _FirstPtr$[rbp] - 0005d 48 89 45 68 mov QWORD PTR _First_ch$[rbp], rax + 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 -; 4158 : const char* const _Last_ch = const_cast(reinterpret_cast(_LastPtr)); +; 4115 : const char* const _Last_ch = const_cast(reinterpret_cast(_Last)); - 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 + 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 -; 4159 : char* const _Dest_ch = const_cast(reinterpret_cast(_DestPtr)); +; 4116 : char* const _Dest_ch = const_cast(reinterpret_cast(_Dest)); - 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 + 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 -; 4160 : const auto _Count = static_cast(_Last_ch - _First_ch); +; 4117 : const auto _Count = static_cast(_Last_ch - _First_ch); - 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 + 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 -; 4161 : _CSTD memmove(_Dest_ch, _First_ch, _Count); +; 4118 : _CSTD memmove(_Dest_ch, _First_ch, _Count); - 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 + 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 -; 4162 : if constexpr (is_pointer_v<_OutCtgIt>) { -; 4163 : return reinterpret_cast<_OutCtgIt>(_Dest_ch + _Count); +; 4119 : return reinterpret_cast<_OutIt>(_Dest_ch + _Count); - 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 + 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 -; 4164 : } else { -; 4165 : return _Dest + (_LastPtr - _FirstPtr); -; 4166 : } -; 4167 : } +; 4120 : } - 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 + 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 _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 ??$move@AEAK@std@@YA$$QEAKAEAK@Z -_TEXT SEGMENT -_Arg$ = 224 -??$move@AEAK@std@@YA$$QEAKAEAK@Z PROC ; std::move, COMDAT - -; 1455 : _NODISCARD constexpr remove_reference_t<_Ty>&& move(_Ty&& _Arg) noexcept { // forward _Arg as movable - -$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 - -; 1456 : return static_cast&&>(_Arg); - - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Arg$[rbp] - -; 1457 : } - - 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.29.30037\include\xutility -; COMDAT ??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z +; 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 _TEXT SEGMENT _It$ = 224 -??$_Get_unwrapped@AEBQEAK@std@@YA?A_TAEBQEAK@Z PROC ; std::_Get_unwrapped, COMDAT +??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@Z PROC ; std::_Get_unwrapped, COMDAT -; 1324 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { +; 1229 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -4913,68 +4818,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 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; + 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; - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _It$[rbp] - 00026 48 8b 00 mov rax, QWORD PTR [rax] - -; 1328 : } else if constexpr (_Unwrappable_v<_Iter>) { -; 1329 : return static_cast<_Iter&&>(_It)._Unwrapped(); -; 1330 : } else { -; 1331 : return static_cast<_Iter&&>(_It); -; 1332 : } -; 1333 : } - - 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 -??$_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.29.30037\include\type_traits -; COMDAT ??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z -_TEXT SEGMENT -_Arg$ = 224 -??$forward@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z PROC ; std::forward, COMDAT - -; 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 - 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 - -; 1444 : return static_cast<_Ty&&>(_Arg); - - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Arg$[rbp] + 0003d 48 8b 00 mov rax, QWORD PTR [rax] -; 1445 : } +; 1233 : } else if constexpr (_Unwrappable_v<_Iter>) { +; 1234 : return static_cast<_Iter&&>(_It)._Unwrapped(); +; 1235 : } else { +; 1236 : return static_cast<_Iter&&>(_It); +; 1237 : } +; 1238 : } - 00026 48 8d a5 c8 00 + 00040 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@PEAK@std@@YA$$QEAPEAKAEAPEAK@Z ENDP ; std::forward + 00047 5f pop rdi + 00048 5d pop rbp + 00049 c3 ret 0 +??$_Get_unwrapped@AEBQEAK@std@@YA@AEBQEAK@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.29.30037\include\xutility +; 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 _TEXT SEGMENT _First$ = 224 @@ -4983,7 +4860,7 @@ _Val$ = 240 __formal$ = 248 ??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z PROC ; std::_Find_unchecked1, COMDAT -; 5298 : _NODISCARD constexpr _InIt _Find_unchecked1(_InIt _First, const _InIt _Last, const _Ty& _Val, false_type) { +; 5130 : _NODISCARD constexpr _InIt _Find_unchecked1(_InIt _First, const _InIt _Last, const _Ty& _Val, false_type) { $LN7: 00000 44 88 4c 24 20 mov BYTE PTR [rsp+32], r9b @@ -4995,65 +4872,71 @@ $LN7: 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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 5299 : // find first matching _Val -; 5300 : for (; _First != _Last; ++_First) { +; 5131 : // find first matching _Val +; 5132 : for (; _First != _Last; ++_First) { - 0002e eb 12 jmp SHORT $LN4@Find_unche + 00045 eb 12 jmp SHORT $LN4@Find_unche $LN2@Find_unche: - 00030 48 8b 85 e0 00 + 00047 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 + 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: - 00042 48 8b 85 e8 00 + 00059 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Last$[rbp] - 00049 48 39 85 e0 00 + 00060 48 39 85 e0 00 00 00 cmp QWORD PTR _First$[rbp], rax - 00050 74 18 je SHORT $LN3@Find_unche + 00067 74 18 je SHORT $LN3@Find_unche -; 5301 : if (*_First == _Val) { +; 5133 : if (*_First == _Val) { - 00052 48 8b 85 e0 00 + 00069 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _First$[rbp] - 00059 48 8b 8d f0 00 + 00070 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 + 00077 8b 09 mov ecx, DWORD PTR [rcx] + 00079 39 08 cmp DWORD PTR [rax], ecx + 0007b 75 02 jne SHORT $LN5@Find_unche -; 5302 : break; +; 5134 : break; - 00066 eb 02 jmp SHORT $LN3@Find_unche + 0007d eb 02 jmp SHORT $LN3@Find_unche $LN5@Find_unche: -; 5303 : } -; 5304 : } +; 5135 : } +; 5136 : } - 00068 eb c6 jmp SHORT $LN2@Find_unche + 0007f eb c6 jmp SHORT $LN2@Find_unche $LN3@Find_unche: -; 5305 : -; 5306 : return _First; +; 5137 : +; 5138 : return _First; - 0006a 48 8b 85 e0 00 + 00081 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _First$[rbp] -; 5307 : } +; 5139 : } - 00071 48 8d a5 c8 00 + 00088 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00078 5f pop rdi - 00079 5d pop rbp - 0007a c3 ret 0 + 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 _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 +; 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 _TEXT SEGMENT _Overflow_is_possible$ = 4 @@ -5061,7 +4944,7 @@ _Max_possible$1 = 40 _Count$ = 288 ??$_Get_size_of_n@$03@std@@YA_K_K@Z PROC ; std::_Get_size_of_n<4>, COMDAT -; 59 : _NODISCARD constexpr size_t _Get_size_of_n(const size_t _Count) { +; 55 : _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 @@ -5070,268 +4953,153 @@ $LN4: 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 + 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 -; 60 : constexpr bool _Overflow_is_possible = _Ty_size > 1; +; 56 : constexpr bool _Overflow_is_possible = _Ty_size > 1; - 0001f c6 45 04 01 mov BYTE PTR _Overflow_is_possible$[rbp], 1 + 00036 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; +; 57 : +; 58 : if _CONSTEXPR_IF (_Overflow_is_possible) { +; 59 : constexpr size_t _Max_possible = static_cast(-1) / _Ty_size; - 00023 48 b8 ff ff ff + 0003a 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 + 00044 48 89 45 28 mov QWORD PTR _Max_possible$1[rbp], rax -; 64 : if (_Count > _Max_possible) { +; 60 : if (_Count > _Max_possible) { - 00031 48 b8 ff ff ff + 00048 48 b8 ff ff ff ff ff ff ff 3f mov rax, 4611686018427387903 ; 3fffffffffffffffH - 0003b 48 39 85 20 01 + 00052 48 39 85 20 01 00 00 cmp QWORD PTR _Count$[rbp], rax - 00042 76 05 jbe SHORT $LN2@Get_size_o + 00059 76 05 jbe SHORT $LN2@Get_size_o -; 65 : _Throw_bad_array_new_length(); // multiply overflow +; 61 : _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 + 0005b 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; +; 62 : } +; 63 : } +; 64 : +; 65 : return _Count * _Ty_size; - 00049 48 8b 85 20 01 + 00060 48 8b 85 20 01 00 00 mov rax, QWORD PTR _Count$[rbp] - 00050 48 c1 e0 02 shl rax, 2 + 00067 48 c1 e0 02 shl rax, 2 $LN3@Get_size_o: -; 70 : } +; 66 : } - 00054 48 8d a5 08 01 + 0006b 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 + 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> _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 +; 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 _TEXT SEGMENT _UFirst$ = 8 _ULast$ = 40 -_Backout$ = 72 -$T4 = 312 -__$ArrayPad$ = 328 -_First$ = 368 -_Last$ = 376 -_Dest$ = 384 -_Al$ = 392 +_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 -; 1693 : const _InIt _First, const _InIt _Last, _Alloc_ptr_t<_Alloc> _Dest, _Alloc& _Al) { +; 1647 : const _InIt _First, const _InIt _Last, _Alloc_ptr_t<_Alloc> _Dest, _Alloc& _Al) { -$LN7: +$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 78 01 - 00 00 sub rsp, 376 ; 00000178H + 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 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 + 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 -; 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); +; 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); - 00058 48 8d 8d 70 01 + 00045 48 8d 8d 20 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 + 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 -; 1698 : const auto _ULast = _Get_unwrapped(_Last); +; 1652 : const auto _ULast = _Get_unwrapped(_Last); - 00068 48 8d 8d 78 01 + 00055 48 8d 8d 28 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: - -; 1714 : -; 1715 : return _Backout._Release(); + 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 - 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: +; 1653 : if constexpr (conjunction_v::_Really_trivial>, +; 1654 : _Uses_default_construct<_Alloc, _Ptrval, decltype(_STD move(*_UFirst))>>) { +; 1655 : _Copy_memmove(_UFirst, _ULast, _Unfancy(_Dest)); -; 1716 : } - - 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 + 00065 48 8b 8d 30 01 + 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 + 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 > _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 -; 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 +; 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 _TEXT SEGMENT _Block_size$ = 8 @@ -5340,7 +5108,7 @@ _Ptr$ = 72 _Bytes$ = 320 ??$_Allocate_manually_vector_aligned@U_Default_allocate_traits@std@@@std@@YAPEAX_K@Z PROC ; std::_Allocate_manually_vector_aligned, COMDAT -; 134 : __declspec(allocator) void* _Allocate_manually_vector_aligned(const size_t _Bytes) { +; 113 : __declspec(allocator) void* _Allocate_manually_vector_aligned(const size_t _Bytes) { $LN13: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5349,173 +5117,141 @@ $LN13: 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 + 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 -; 135 : // allocate _Bytes manually aligned to at least _Big_allocation_alignment -; 136 : const size_t _Block_size = _Non_user_size + _Bytes; +; 114 : // allocate _Bytes manually aligned to at least _Big_allocation_alignment +; 115 : const size_t _Block_size = _Non_user_size + _Bytes; - 0001f 48 8b 85 40 01 + 00036 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 + 0003d 48 83 c0 2f add rax, 47 ; 0000002fH + 00041 48 89 45 08 mov QWORD PTR _Block_size$[rbp], rax -; 137 : if (_Block_size <= _Bytes) { +; 116 : if (_Block_size <= _Bytes) { - 0002e 48 8b 85 40 01 + 00045 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 + 0004c 48 39 45 08 cmp QWORD PTR _Block_size$[rbp], rax + 00050 77 05 ja SHORT $LN8@Allocate_m -; 138 : _Throw_bad_array_new_length(); // add overflow +; 117 : _Throw_bad_array_new_length(); // add overflow - 0003b e8 00 00 00 00 call ?_Throw_bad_array_new_length@std@@YAXXZ ; std::_Throw_bad_array_new_length + 00052 e8 00 00 00 00 call ?_Throw_bad_array_new_length@std@@YAXXZ ; std::_Throw_bad_array_new_length $LN8@Allocate_m: -; 139 : } -; 140 : -; 141 : const uintptr_t _Ptr_container = reinterpret_cast(_Traits::_Allocate(_Block_size)); +; 118 : } +; 119 : +; 120 : const uintptr_t _Ptr_container = reinterpret_cast(_Traits::_Allocate(_Block_size)); - 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 + 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: -; 142 : _STL_VERIFY(_Ptr_container != 0, "invalid argument"); // validate even in release since we're doing p[-1] +; 121 : _STL_VERIFY(_Ptr_container != 0, "invalid argument"); // validate even in release since we're doing p[-1] - 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 + 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: - 00056 48 8d 05 00 00 + 0006d 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 + 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@ - 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 + 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 - 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 + 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: - 00091 48 c7 44 24 20 + 000a8 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 + 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_@ - 000ae 48 8d 0d 00 00 + 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@ - 000b5 ff 15 00 00 00 + 000cc 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 + 000d2 33 c0 xor eax, eax + 000d4 85 c0 test eax, eax + 000d6 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 + 000d8 33 c0 xor eax, eax + 000da 85 c0 test eax, eax + 000dc 75 86 jne SHORT $LN4@Allocate_m -; 143 : void* const _Ptr = reinterpret_cast((_Ptr_container + _Non_user_size) & ~(_Big_allocation_alignment - 1)); +; 122 : void* const _Ptr = reinterpret_cast((_Ptr_container + _Non_user_size) & ~(_Big_allocation_alignment - 1)); - 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 + 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 -; 144 : static_cast(_Ptr)[-1] = _Ptr_container; +; 123 : 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 + 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 -; 145 : -; 146 : #ifdef _DEBUG -; 147 : static_cast(_Ptr)[-2] = _Big_allocation_sentinel; +; 124 : +; 125 : #ifdef _DEBUG +; 126 : 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 + 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 - 00103 48 89 14 01 mov QWORD PTR [rcx+rax], rdx + 0011a 48 89 14 01 mov QWORD PTR [rcx+rax], rdx -; 148 : #endif // _DEBUG -; 149 : return _Ptr; +; 127 : #endif // _DEBUG +; 128 : return _Ptr; - 00107 48 8b 45 48 mov rax, QWORD PTR _Ptr$[rbp] + 0011e 48 8b 45 48 mov rax, QWORD PTR _Ptr$[rbp] $LN11@Allocate_m: -; 150 : } +; 129 : } - 0010b 48 8d a5 28 01 + 00122 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 + 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 _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@PEAK@std@@YAPEAXPEAK@Z -_TEXT SEGMENT -_It$ = 224 -??$_Voidify_iter@PEAK@std@@YAPEAXPEAK@Z PROC ; std::_Voidify_iter, COMDAT - -; 130 : _NODISCARD constexpr void* _Voidify_iter(_Iter _It) 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:__7CE971A6_xutility - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 131 : if constexpr (is_pointer_v<_Iter>) { -; 132 : return const_cast(static_cast(_It)); - - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _It$[rbp] - -; 133 : } else { -; 134 : return const_cast(static_cast(_STD addressof(*_It))); -; 135 : } -; 136 : } - - 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@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.29.30037\include\xutility +; 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 _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 -; 1427 : constexpr void _Seek_wrapped(_Iter& _It, _UIter&& _UIt) { +; 1417 : constexpr void _Seek_wrapped(_Iter& _It, _UIter&& _UIt) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -5525,35 +5261,40 @@ $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 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 + 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] - 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 + 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 -; 1430 : } else { -; 1431 : _It = _STD forward<_UIter>(_UIt); -; 1432 : } -; 1433 : } +; 1420 : } else { +; 1421 : _It = static_cast<_UIter&&>(_UIt); +; 1422 : } +; 1423 : } - 0003f 48 8d a5 c8 00 + 00051 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 + 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.29.30037\include\xutility +; 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 @@ -5562,7 +5303,7 @@ _Last$ = 264 _Val$ = 272 ??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z PROC ; std::_Find_unchecked, COMDAT -; 5333 : _NODISCARD _CONSTEXPR20 _InIt _Find_unchecked(const _InIt _First, const _InIt _Last, const _Ty& _Val) { +; 5160 : _NODISCARD _CONSTEXPR20 _InIt _Find_unchecked(const _InIt _First, const _InIt _Last, const _Ty& _Val) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -5573,47 +5314,57 @@ $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 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 + 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] - 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 + 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] - 00044 4c 8b 85 10 01 + 0005b 4c 8b 85 10 01 00 00 mov r8, QWORD PTR _Val$[rbp] - 0004b 48 8b 95 08 01 + 00062 48 8b 95 08 01 00 00 mov rdx, QWORD PTR _Last$[rbp] - 00052 48 8b 8d 00 01 + 00069 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 + 00070 e8 00 00 00 00 call ??$_Find_unchecked1@PEAKK@std@@YAPEAKPEAKQEAKAEBKU?$integral_constant@_N$0A@@0@@Z ; std::_Find_unchecked1 -; 5337 : } +; 5168 : } - 0005e 48 8d a5 e8 00 + 00075 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00065 5f pop rdi - 00066 5d pop rbp - 00067 c3 ret 0 + 0007c 5f pop rdi + 0007d 5d pop rbp + 0007e 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.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 +; 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 _TEXT SEGMENT _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 +??$_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 -; 1324 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { +; 1229 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5622,40 +5373,46 @@ $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 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; -; 1328 : } else if constexpr (_Unwrappable_v<_Iter>) { -; 1329 : return static_cast<_Iter&&>(_It)._Unwrapped(); - - 0001f 48 8b 8d e0 00 + 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] - 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 + 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 -; 1330 : } else { -; 1331 : return static_cast<_Iter&&>(_It); -; 1332 : } -; 1333 : } +; 1235 : } else { +; 1236 : return static_cast<_Iter&&>(_It); +; 1237 : } +; 1238 : } - 0002b 48 8d a5 c8 00 + 00042 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@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 &> + 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 &> _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 ??$_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 +; 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 _TEXT SEGMENT _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 +??$_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 -; 1324 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { +; 1229 : _NODISCARD constexpr decltype(auto) _Get_unwrapped(_Iter&& _It) { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5664,116 +5421,94 @@ $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 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; -; 1328 : } else if constexpr (_Unwrappable_v<_Iter>) { -; 1329 : return static_cast<_Iter&&>(_It)._Unwrapped(); - - 0001f 48 8b 8d e0 00 + 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] - 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 + 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 -; 1330 : } else { -; 1331 : return static_cast<_Iter&&>(_It); -; 1332 : } -; 1333 : } +; 1235 : } else { +; 1236 : return static_cast<_Iter&&>(_It); +; 1237 : } +; 1238 : } - 0002b 48 8d a5 c8 00 + 00042 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 > > &> + 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 > > &> _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 +; 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 _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 -; 1307 : constexpr void _Adl_verify_range(const _Iter& _First, const _Sentinel& _Last) { +; 1192 : constexpr void _Adl_verify_range(const _Iter& _First, const _Sentinel& _Last) { $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:__7CE971A6_xutility - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1308 : // check that [_First, _Last) forms an iterator range -; 1309 : if constexpr (_Range_verifiable_v<_Iter, _Sentinel>) { -; 1310 : _Verify_range(_First, _Last); - - 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 - -; 1311 : } -; 1312 : } - - 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 - -; 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 - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 + 0000c 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 - -; 1444 : return static_cast<_Ty&&>(_Arg); - - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Arg$[rbp] + 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 -; 1445 : } +; 1196 : } +; 1197 : } - 00026 48 8d a5 c8 00 + 0004e 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 + 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.29.30037\include\xutility -; COMDAT ??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z +; 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 -_It$ = 224 -??$_Voidify_iter@PEAU_Container_proxy@std@@@std@@YAPEAXPEAU_Container_proxy@0@@Z PROC ; std::_Voidify_iter, COMDAT +_Arg$ = 224 +??$forward@PEAU_Container_base12@std@@@std@@YA$$QEAPEAU_Container_base12@0@AEAPEAU10@@Z PROC ; std::forward, COMDAT -; 130 : _NODISCARD constexpr void* _Voidify_iter(_Iter _It) noexcept { +; 1454 : 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 @@ -5782,30 +5517,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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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); -; 131 : if constexpr (is_pointer_v<_Iter>) { -; 132 : return const_cast(static_cast(_It)); - - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _It$[rbp] + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR _Arg$[rbp] -; 133 : } else { -; 134 : return const_cast(static_cast(_STD addressof(*_It))); -; 135 : } -; 136 : } +; 1456 : } - 00026 48 8d a5 c8 00 + 0003d 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 + 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 _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 +; 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 _TEXT SEGMENT _Val$ = 224 @@ -5820,33 +5557,39 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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); - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Val$[rbp] ; 276 : } - 00026 48 8d a5 c8 00 + 0003d 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 + 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.29.30037\include\xmemory +; 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 -; 251 : _CONSTEXPR20_DYNALLOC void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { +; 213 : void _Deallocate(void* _Ptr, size_t _Bytes) noexcept { $LN4: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -5856,63 +5599,63 @@ $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 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 + 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 - 0002f 72 13 jb SHORT $LN2@Deallocate + 00046 72 13 jb SHORT $LN2@Deallocate -; 261 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); +; 217 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); - 00031 48 8d 95 e8 00 + 00048 48 8d 95 e8 00 00 00 lea rdx, QWORD PTR _Bytes$[rbp] - 00038 48 8d 8d e0 00 + 0004f 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 + 00056 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); +; 218 : } +; 219 : #endif // defined(_M_IX86) || defined(_M_X64) +; 220 : +; 221 : ::operator delete(_Ptr, _Bytes); - 00044 48 8b 95 e8 00 + 0005b 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Bytes$[rbp] - 0004b 48 8b 8d e0 00 + 00062 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 + 00069 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 0006e 90 npad 1 -; 265 : } -; 266 : } +; 222 : } - 00058 48 8d a5 c8 00 + 0006f 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 + 00076 5f pop rdi + 00077 5d pop rbp + 00078 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 +; 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 _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) { +; 197 : __declspec(allocator) void* _Allocate(const size_t _Bytes) { $LN5: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -5921,67 +5664,68 @@ $LN5: 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 + 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 - 0002a 72 0e jb SHORT $LN2@Allocate + 00041 72 0e jb SHORT $LN2@Allocate -; 238 : return _Allocate_manually_vector_aligned<_Traits>(_Bytes); +; 201 : return _Allocate_manually_vector_aligned<_Traits>(_Bytes); - 0002c 48 8b 8d e0 00 + 00043 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 + 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: -; 239 : } -; 240 : } -; 241 : #endif // defined(_M_IX86) || defined(_M_X64) -; 242 : -; 243 : if (_Bytes != 0) { +; 202 : } +; 203 : #endif // defined(_M_IX86) || defined(_M_X64) +; 204 : +; 205 : if (_Bytes != 0) { - 0003a 48 83 bd e0 00 + 00051 48 83 bd e0 00 00 00 00 cmp QWORD PTR _Bytes$[rbp], 0 - 00042 74 0e je SHORT $LN3@Allocate + 00059 74 0e je SHORT $LN3@Allocate -; 244 : return _Traits::_Allocate(_Bytes); +; 206 : return _Traits::_Allocate(_Bytes); - 00044 48 8b 8d e0 00 + 0005b 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 + 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: -; 245 : } -; 246 : -; 247 : return nullptr; +; 207 : } +; 208 : +; 209 : return nullptr; - 00052 33 c0 xor eax, eax + 00069 33 c0 xor eax, eax $LN1@Allocate: -; 248 : } +; 210 : } - 00054 48 8d a5 c8 00 + 0006b 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 + 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> _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 +; 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 _TEXT SEGMENT _Overflow_is_possible$ = 4 @@ -5989,7 +5733,7 @@ _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) { +; 55 : _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 @@ -5998,55 +5742,61 @@ $LN4: 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 + 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 -; 60 : constexpr bool _Overflow_is_possible = _Ty_size > 1; +; 56 : constexpr bool _Overflow_is_possible = _Ty_size > 1; - 0001f c6 45 04 01 mov BYTE PTR _Overflow_is_possible$[rbp], 1 + 00036 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; +; 57 : +; 58 : if _CONSTEXPR_IF (_Overflow_is_possible) { +; 59 : constexpr size_t _Max_possible = static_cast(-1) / _Ty_size; - 00023 48 b8 ff ff ff + 0003a 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 + 00044 48 89 45 28 mov QWORD PTR _Max_possible$1[rbp], rax -; 64 : if (_Count > _Max_possible) { +; 60 : if (_Count > _Max_possible) { - 00031 48 b8 ff ff ff + 00048 48 b8 ff ff ff ff ff ff ff 0f mov rax, 1152921504606846975 ; 0fffffffffffffffH - 0003b 48 39 85 20 01 + 00052 48 39 85 20 01 00 00 cmp QWORD PTR _Count$[rbp], rax - 00042 76 05 jbe SHORT $LN2@Get_size_o + 00059 76 05 jbe SHORT $LN2@Get_size_o -; 65 : _Throw_bad_array_new_length(); // multiply overflow +; 61 : _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 + 0005b 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; +; 62 : } +; 63 : } +; 64 : +; 65 : return _Count * _Ty_size; - 00049 48 6b 85 20 01 + 00060 48 6b 85 20 01 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 $LN3@Get_size_o: -; 70 : } +; 66 : } - 00051 48 8d a5 08 01 + 00068 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 + 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.29.30037\include\xmemory +; 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 @@ -6054,7 +5804,7 @@ _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 { +; 955 : void _Destroy_range(_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 @@ -6065,28 +5815,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 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 + 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] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 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 > _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 +; 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 _TEXT SEGMENT _Ptr$ = 224 @@ -6101,26 +5858,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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 289 : return _Ptr; - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Ptr$[rbp] ; 290 : } - 00026 48 8d a5 c8 00 + 0003d 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 + 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 _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 +; 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 _TEXT SEGMENT $T1 = 200 @@ -6129,7 +5892,7 @@ _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 */ { +; 67 : const _Ty& _Left, const _Ty& _Right) noexcept(noexcept(_Right < _Left)) /* strengthened */ { $LN5: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -6139,55 +5902,61 @@ $LN5: 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 + 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 -; 67 : // return smaller of _Left and _Right -; 68 : return _Right < _Left ? _Right : _Left; +; 68 : // return smaller of _Left and _Right +; 69 : return _Right < _Left ? _Right : _Left; - 00024 48 8b 85 08 01 + 0003b 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Right$[rbp] - 0002b 48 8b 8d 00 01 + 00042 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 + 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] - 00041 48 89 85 d8 00 + 00058 48 89 85 d8 00 00 00 mov QWORD PTR tv65[rbp], rax - 00048 eb 0e jmp SHORT $LN4@min + 0005f eb 0e jmp SHORT $LN4@min $LN3@min: - 0004a 48 8b 85 00 01 + 00061 48 8b 85 00 01 00 00 mov rax, QWORD PTR _Left$[rbp] - 00051 48 89 85 d8 00 + 00068 48 89 85 d8 00 00 00 mov QWORD PTR tv65[rbp], rax $LN4@min: - 00058 48 8b 85 d8 00 + 0006f 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv65[rbp] - 0005f 48 89 85 c8 00 + 00076 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 00066 48 8b 85 c8 00 + 0007d 48 8b 85 c8 00 00 00 mov rax, QWORD PTR $T1[rbp] -; 69 : } +; 70 : } - 0006d 48 8d a5 e8 00 + 00084 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 + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d 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 +; 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 _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 { +; 125 : explicit __CLR_OR_THIS_CALL operator bool() const { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6196,27 +5965,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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; -; 125 : return _Ok; - - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 0f b6 40 08 movzx eax, BYTE PTR [rax+8] + 0003d 0f b6 40 08 movzx eax, BYTE PTR [rax+8] -; 126 : } +; 127 : } - 0002a 48 8d a5 c8 00 + 00041 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 + 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 _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 +; 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 _TEXT SEGMENT _Zero_uncaught_exceptions$ = 4 @@ -6224,7 +5999,7 @@ 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 { +; 110 : __CLR_OR_THIS_CALL ~sentry() noexcept { $LN6: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -6233,65 +6008,71 @@ $LN6: 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 + 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 - 00032 eb 07 jmp SHORT $LN5@sentry + 00049 eb 07 jmp SHORT $LN5@sentry $LN4@sentry: - 00034 c6 85 d4 00 00 + 0004b c6 85 d4 00 00 00 00 mov BYTE PTR tv72[rbp], 0 $LN5@sentry: - 0003b 0f b6 85 d4 00 + 00052 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 + 00059 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) { +; 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) { - 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 + 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 -; 119 : this->_Myostr._Osfx(); +; 120 : this->_Myostr._Osfx(); - 0004d 48 8b 85 00 01 + 00064 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 + 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: -; 120 : } -; 121 : } +; 121 : } +; 122 : } - 0005d 48 8b 8d 00 01 + 00074 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 + 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] - 00071 5f pop rdi - 00072 5d pop rbp - 00073 c3 ret 0 + 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 _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 +; 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 _TEXT SEGMENT _Tied$ = 8 @@ -6309,117 +6090,124 @@ $LN7: 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 + 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] - 0002b 48 8b 8d 00 01 + 00042 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 + 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()) { - 00038 48 8b 85 08 01 + 0004f 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 + 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] - 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 + 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 - 0005c 0f b6 c0 movzx eax, al - 0005f 85 c0 test eax, eax - 00061 75 10 jne SHORT $LN2@sentry + 00073 0f b6 c0 movzx eax, al + 00076 85 c0 test eax, eax + 00078 75 10 jne SHORT $LN2@sentry ; 94 : _Ok = false; - 00063 48 8b 85 00 01 + 0007a 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0006a c6 40 08 00 mov BYTE PTR [rax+8], 0 + 00081 c6 40 08 00 mov BYTE PTR [rax+8], 0 ; 95 : return; - 0006e e9 81 00 00 00 jmp $LN1@sentry + 00085 e9 81 00 00 00 jmp $LN1@sentry $LN2@sentry: ; 96 : } ; 97 : ; 98 : const auto _Tied = _Ostr.tie(); - 00073 48 8b 85 08 01 + 0008a 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 + 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] - 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 + 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 - 00097 48 89 45 08 mov QWORD PTR _Tied$[rbp], rax + 000ae 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 + 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] - 000a9 48 39 45 08 cmp QWORD PTR _Tied$[rbp], rax - 000ad 75 0d jne SHORT $LN3@sentry + 000c0 48 39 45 08 cmp QWORD PTR _Tied$[rbp], rax + 000c4 75 0d jne SHORT $LN3@sentry $LN4@sentry: ; 100 : _Ok = true; - 000af 48 8b 85 00 01 + 000c6 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000b6 c6 40 08 01 mov BYTE PTR [rax+8], 1 + 000cd c6 40 08 01 mov BYTE PTR [rax+8], 1 ; 101 : return; - 000ba eb 38 jmp SHORT $LN1@sentry + 000d1 eb 38 jmp SHORT $LN1@sentry $LN3@sentry: ; 102 : } ; 103 : -; 104 : _Tied->flush(); +; 104 : +; 105 : _Tied->flush(); - 000bc 48 8b 4d 08 mov rcx, QWORD PTR _Tied$[rbp] - 000c0 ff 15 00 00 00 + 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 -; 105 : _Ok = _Ostr.good(); // store test only after flushing tie +; 106 : _Ok = _Ostr.good(); // store test only after flushing tie - 000c6 48 8b 85 08 01 + 000dd 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 + 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] - 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 + 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 - 000ea 48 8b 8d 00 01 + 00101 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000f1 88 41 08 mov BYTE PTR [rcx+8], al + 00108 88 41 08 mov BYTE PTR [rcx+8], al $LN1@sentry: -; 106 : } +; 107 : } - 000f4 48 8b 85 00 01 + 0010b 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 8d a5 e8 00 + 00112 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 + 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 _TEXT ENDS ; COMDAT text$x @@ -6466,7 +6254,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.29.30037\include\ostream +; 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 _TEXT SEGMENT _Rdbuf$ = 8 @@ -6483,56 +6271,62 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 79 : const auto _Rdbuf = _Myostr.rdbuf(); - 0001f 48 8b 85 00 01 + 00036 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b 00 mov rax, QWORD PTR [rax] - 00029 48 89 85 d8 00 + 0003d 48 8b 00 mov rax, QWORD PTR [rax] + 00040 48 89 85 d8 00 00 00 mov QWORD PTR tv72[rbp], rax - 00030 48 8b 85 d8 00 + 00047 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv72[rbp] - 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 + 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] - 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 + 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 - 00054 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax + 0006b 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax ; 80 : if (_Rdbuf) { - 00058 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 - 0005d 74 0f je SHORT $LN2@Sentry_bas + 0006f 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 + 00074 74 0f je SHORT $LN2@Sentry_bas ; 81 : _Rdbuf->_Unlock(); - 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 + 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 : } - 0006e 48 8d a5 e8 00 + 00085 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00075 5f pop rdi - 00076 5d pop rbp - 00077 c3 ret 0 + 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 _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 +; 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 _TEXT SEGMENT _Rdbuf$ = 8 @@ -6551,62 +6345,68 @@ $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 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 + 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] - 0002b 48 8b 8d 08 01 + 00042 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ostr$[rbp] - 00032 48 89 08 mov QWORD PTR [rax], rcx + 00049 48 89 08 mov QWORD PTR [rax], rcx ; 72 : const auto _Rdbuf = _Myostr.rdbuf(); - 00035 48 8b 85 00 01 + 0004c 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0003c 48 8b 00 mov rax, QWORD PTR [rax] - 0003f 48 89 85 d8 00 + 00053 48 8b 00 mov rax, QWORD PTR [rax] + 00056 48 89 85 d8 00 00 00 mov QWORD PTR tv73[rbp], rax - 00046 48 8b 85 d8 00 + 0005d 48 8b 85 d8 00 00 00 mov rax, QWORD PTR tv73[rbp] - 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 + 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] - 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 + 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 - 0006a 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax + 00081 48 89 45 08 mov QWORD PTR _Rdbuf$[rbp], rax ; 73 : if (_Rdbuf) { - 0006e 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 - 00073 74 0e je SHORT $LN2@Sentry_bas + 00085 48 83 7d 08 00 cmp QWORD PTR _Rdbuf$[rbp], 0 + 0008a 74 0e je SHORT $LN2@Sentry_bas ; 74 : _Rdbuf->_Lock(); - 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] + 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 : } - 00083 48 8b 85 00 01 + 0009a 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0008a 48 8d a5 e8 00 + 000a1 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00091 5f pop rdi - 00092 5d pop rbp - 00093 c3 ret 0 + 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 _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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -6615,7 +6415,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 -; 1073 : _CONSTEXPR20_CONTAINER void _Alloc_proxy(_Alloc&& _Al) { +; 1101 : void _Alloc_proxy(_Alloc&& _Al) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -6625,63 +6425,69 @@ $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 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 + 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 00 00 mov rcx, QWORD PTR _Al$[rbp] - 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 + 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 -; 1075 : _Construct_in_place(*_New_proxy, this); +; 1103 : _Construct_in_place(*_New_proxy, this); - 00041 48 8b 85 20 01 + 00058 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 89 85 e8 00 + 0005f 48 89 85 e8 00 00 00 mov QWORD PTR $T1[rbp], rax - 0004f 48 8d 95 e8 00 + 00066 48 8d 95 e8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 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 + 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 -; 1076 : _Myproxy = _New_proxy; +; 1104 : _Myproxy = _New_proxy; - 0005f 48 8b 85 20 01 + 00076 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00066 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] - 0006a 48 89 08 mov QWORD PTR [rax], rcx + 0007d 48 8b 4d 08 mov rcx, QWORD PTR _New_proxy$[rbp] + 00081 48 89 08 mov QWORD PTR [rax], rcx -; 1077 : _New_proxy->_Mycont = this; +; 1105 : _New_proxy->_Mycont = this; - 0006d 48 8b 45 08 mov rax, QWORD PTR _New_proxy$[rbp] - 00071 48 8b 8d 20 01 + 00084 48 8b 45 08 mov rax, QWORD PTR _New_proxy$[rbp] + 00088 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00078 48 89 08 mov QWORD PTR [rax], rcx + 0008f 48 89 08 mov QWORD PTR [rax], rcx -; 1078 : } +; 1106 : } - 0007b 48 8d a5 08 01 + 00092 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 00082 5f pop rdi - 00083 5d pop rbp - 00084 c3 ret 0 + 00099 5f pop rdi + 0009a 5d pop rbp + 0009b 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.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 1370 : : _Ty1(), _Myval2(_STD forward<_Other2>(_Val2)...) {} +; 1336 : : _Ty1(), _Myval2(_STD forward<_Other2>(_Val2)...) {} $LN3: 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl @@ -6691,34 +6497,40 @@ $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 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 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0002a e8 00 00 00 00 call ??0?$allocator@K@std@@QEAA@XZ ; std::allocator::allocator - 0002f 48 8b 85 e0 00 + 00041 e8 00 00 00 00 call ??0?$allocator@K@std@@QEAA@XZ ; std::allocator::allocator + 00046 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] - 00045 48 8d a5 c8 00 + 0005c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004c 5f pop rdi - 0004d 5d pop rbp - 0004e c3 ret 0 + 00063 5f pop rdi + 00064 5d pop rbp + 00065 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.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 829 : constexpr allocator(const allocator<_Other>&) noexcept {} +; 799 : constexpr allocator(const allocator<_Other>&) noexcept {} $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -6728,27 +6540,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 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 8d a5 c8 00 + 00042 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 + 00049 5f pop rdi + 0004a 5d pop rbp + 0004b 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.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 838 : _NODISCARD _CONSTEXPR20_DYNALLOC __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { +; 806 : _NODISCARD __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -6758,29 +6576,35 @@ $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 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 + 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 00 00 mov rcx, QWORD PTR _Count$[rbp] - 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> + 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> -; 840 : } +; 808 : } - 00038 48 8d a5 c8 00 + 0004f 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 + 00056 5f pop rdi + 00057 5d pop rbp + 00058 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z _TEXT SEGMENT _Al$ = 8 @@ -6801,7 +6625,7 @@ _Whereptr$ = 600 <_Val_0>$ = 608 ??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z PROC ; std::vector >::_Emplace_reallocate, COMDAT -; 765 : _CONSTEXPR20_CONTAINER pointer _Emplace_reallocate(const pointer _Whereptr, _Valty&&... _Val) { +; 725 : pointer _Emplace_reallocate(const pointer _Whereptr, _Valty&&... _Val) { $LN13: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -6812,259 +6636,265 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 766 : // reallocate and insert by perfectly forwarding _Val at _Whereptr -; 767 : _Alty& _Al = _Getal(); +; 726 : // reallocate and insert by perfectly forwarding _Val at _Whereptr +; 727 : _Alty& _Al = _Getal(); - 00029 48 8b 8d 50 02 + 00040 48 8b 8d 50 02 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 48 89 45 08 mov QWORD PTR _Al$[rbp], rax + 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 -; 768 : auto& _My_data = _Mypair._Myval2; +; 728 : auto& _My_data = _Mypair._Myval2; - 00039 48 8b 85 50 02 + 00050 48 8b 85 50 02 00 00 mov rax, QWORD PTR this$[rbp] - 00040 48 89 45 28 mov QWORD PTR _My_data$[rbp], rax + 00057 48 89 45 28 mov QWORD PTR _My_data$[rbp], rax -; 769 : pointer& _Myfirst = _My_data._Myfirst; +; 729 : pointer& _Myfirst = _My_data._Myfirst; - 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 + 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 -; 770 : pointer& _Mylast = _My_data._Mylast; +; 730 : pointer& _Mylast = _My_data._Mylast; - 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 + 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 -; 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); +; 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); - 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 + 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 00 00 mov rcx, QWORD PTR _Whereptr$[rbp] - 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 + 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 00 00 mov QWORD PTR _Whereoff$[rbp], rax -; 775 : const auto _Oldsize = static_cast(_Mylast - _Myfirst); +; 735 : const auto _Oldsize = static_cast(_Mylast - _Myfirst); - 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 + 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 00 00 mov QWORD PTR _Oldsize$[rbp], rax -; 776 : -; 777 : if (_Oldsize == max_size()) { +; 736 : +; 737 : if (_Oldsize == max_size()) { - 00097 48 8b 8d 50 02 + 000ae 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR this$[rbp] - 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 + 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 00 00 cmp QWORD PTR _Oldsize$[rbp], rax - 000aa 75 05 jne SHORT $LN2@Emplace_re + 000c1 75 05 jne SHORT $LN2@Emplace_re -; 778 : _Xlength(); +; 738 : _Xlength(); - 000ac e8 00 00 00 00 call ?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ ; std::vector >::_Xlength + 000c3 e8 00 00 00 00 call ?_Xlength@?$vector@KV?$allocator@K@std@@@std@@CAXXZ ; std::vector >::_Xlength $LN2@Emplace_re: -; 779 : } -; 780 : -; 781 : const size_type _Newsize = _Oldsize + 1; +; 739 : } +; 740 : +; 741 : const size_type _Newsize = _Oldsize + 1; - 000b1 48 8b 85 a8 00 + 000c8 48 8b 85 a8 00 00 00 mov rax, QWORD PTR _Oldsize$[rbp] - 000b8 48 ff c0 inc rax - 000bb 48 89 85 c8 00 + 000cf 48 ff c0 inc rax + 000d2 48 89 85 c8 00 00 00 mov QWORD PTR _Newsize$[rbp], rax -; 782 : const size_type _Newcapacity = _Calculate_growth(_Newsize); +; 742 : const size_type _Newcapacity = _Calculate_growth(_Newsize); - 000c2 48 8b 95 c8 00 + 000d9 48 8b 95 c8 00 00 00 mov rdx, QWORD PTR _Newsize$[rbp] - 000c9 48 8b 8d 50 02 + 000e0 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR this$[rbp] - 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 + 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 00 00 mov QWORD PTR _Newcapacity$[rbp], rax -; 783 : -; 784 : const pointer _Newvec = _Al.allocate(_Newcapacity); +; 743 : +; 744 : const pointer _Newvec = _Al.allocate(_Newcapacity); - 000dc 48 8b 95 e8 00 + 000f3 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Newcapacity$[rbp] - 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 + 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 00 00 mov QWORD PTR _Newvec$[rbp], rax -; 785 : const pointer _Constructed_last = _Newvec + _Whereoff + 1; +; 745 : const pointer _Constructed_last = _Newvec + _Whereoff + 1; - 000f3 48 8b 85 08 01 + 0010a 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 000fa 48 8b 8d 88 00 + 00111 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] - 00101 48 8d 44 88 04 lea rax, QWORD PTR [rax+rcx*4+4] - 00106 48 89 85 28 01 + 00118 48 8d 44 88 04 lea rax, QWORD PTR [rax+rcx*4+4] + 0011d 48 89 85 28 01 00 00 mov QWORD PTR _Constructed_last$[rbp], rax -; 786 : pointer _Constructed_first = _Constructed_last; +; 746 : pointer _Constructed_first = _Constructed_last; - 0010d 48 8b 85 28 01 + 00124 48 8b 85 28 01 00 00 mov rax, QWORD PTR _Constructed_last$[rbp] - 00114 48 89 85 48 01 + 0012b 48 89 85 48 01 00 00 mov QWORD PTR _Constructed_first$[rbp], rax -; 787 : -; 788 : _TRY_BEGIN -; 789 : _Alty_traits::construct(_Al, _Unfancy(_Newvec + _Whereoff), _STD forward<_Valty>(_Val)...); +; 747 : +; 748 : _TRY_BEGIN +; 749 : _Alty_traits::construct(_Al, _Unfancy(_Newvec + _Whereoff), _STD forward<_Valty>(_Val)...); - 0011b 48 8b 8d 60 02 + 00132 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] - 00122 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward - 00127 48 89 85 18 02 + 00139 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward + 0013e 48 89 85 18 02 00 00 mov QWORD PTR tv134[rbp], rax - 0012e 48 8b 85 08 01 + 00145 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 00135 48 8b 8d 88 00 + 0014c 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] - 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 + 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 00 00 mov QWORD PTR tv132[rbp], rax - 0014f 4c 8b 85 18 02 + 00166 4c 8b 85 18 02 00 00 mov r8, QWORD PTR tv134[rbp] - 00156 48 8b 95 20 02 + 0016d 48 8b 95 20 02 00 00 mov rdx, QWORD PTR tv132[rbp] - 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 + 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 -; 790 : _Constructed_first = _Newvec + _Whereoff; +; 750 : _Constructed_first = _Newvec + _Whereoff; - 00166 48 8b 85 08 01 + 0017d 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 0016d 48 8b 8d 88 00 + 00184 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] - 00174 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] - 00178 48 89 85 48 01 + 0018b 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] + 0018f 48 89 85 48 01 00 00 mov QWORD PTR _Constructed_first$[rbp], rax -; 791 : -; 792 : if (_Whereptr == _Mylast) { // at back, provide strong guarantee +; 751 : +; 752 : if (_Whereptr == _Mylast) { // at back, provide strong guarantee - 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 + 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 00 00 cmp QWORD PTR _Whereptr$[rbp], rax - 0018d 75 23 jne SHORT $LN4@Emplace_re + 001a4 75 23 jne SHORT $LN4@Emplace_re -; 793 : _Umove_if_noexcept(_Myfirst, _Mylast, _Newvec); +; 753 : _Umove_if_noexcept(_Myfirst, _Mylast, _Newvec); - 0018f 4c 8b 8d 08 01 + 001a6 4c 8b 8d 08 01 00 00 mov r9, QWORD PTR _Newvec$[rbp] - 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 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 001ab e8 00 00 00 00 call ?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z ; std::vector >::_Umove_if_noexcept + 001c2 e8 00 00 00 00 call ?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z ; std::vector >::_Umove_if_noexcept -; 794 : } else { // provide basic guarantee +; 754 : } else { // provide basic guarantee - 001b0 eb 60 jmp SHORT $LN5@Emplace_re + 001c7 eb 60 jmp SHORT $LN5@Emplace_re $LN4@Emplace_re: -; 795 : _Umove(_Myfirst, _Whereptr, _Newvec); +; 755 : _Umove(_Myfirst, _Whereptr, _Newvec); - 001b2 4c 8b 8d 08 01 + 001c9 4c 8b 8d 08 01 00 00 mov r9, QWORD PTR _Newvec$[rbp] - 001b9 4c 8b 85 58 02 + 001d0 4c 8b 85 58 02 00 00 mov r8, QWORD PTR _Whereptr$[rbp] - 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 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 001ce e8 00 00 00 00 call ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z ; std::vector >::_Umove + 001e5 e8 00 00 00 00 call ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z ; std::vector >::_Umove -; 796 : _Constructed_first = _Newvec; +; 756 : _Constructed_first = _Newvec; - 001d3 48 8b 85 08 01 + 001ea 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 001da 48 89 85 48 01 + 001f1 48 89 85 48 01 00 00 mov QWORD PTR _Constructed_first$[rbp], rax -; 797 : _Umove(_Whereptr, _Mylast, _Newvec + _Whereoff + 1); +; 757 : _Umove(_Whereptr, _Mylast, _Newvec + _Whereoff + 1); - 001e1 48 8b 85 08 01 + 001f8 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 001e8 48 8b 8d 88 00 + 001ff 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] - 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 + 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 00 00 mov rdx, QWORD PTR _Whereptr$[rbp] - 00205 48 8b 8d 50 02 + 0021c 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR this$[rbp] - 0020c e8 00 00 00 00 call ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z ; std::vector >::_Umove - 00211 90 npad 1 + 00223 e8 00 00 00 00 call ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z ; std::vector >::_Umove + 00228 90 npad 1 $LN5@Emplace_re: - 00212 eb 00 jmp SHORT $LN9@Emplace_re + 00229 eb 00 jmp SHORT $LN9@Emplace_re $LN10@Emplace_re: $LN9@Emplace_re: -; 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); +; 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); - 00214 4c 8b 8d e8 00 + 0022b 4c 8b 8d e8 00 00 00 mov r9, QWORD PTR _Newcapacity$[rbp] - 0021b 4c 8b 85 c8 00 + 00232 4c 8b 85 c8 00 00 00 mov r8, QWORD PTR _Newsize$[rbp] - 00222 48 8b 95 08 01 + 00239 48 8b 95 08 01 00 00 mov rdx, QWORD PTR _Newvec$[rbp] - 00229 48 8b 8d 50 02 + 00240 48 8b 8d 50 02 00 00 mov rcx, QWORD PTR this$[rbp] - 00230 e8 00 00 00 00 call ?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z ; std::vector >::_Change_array + 00247 e8 00 00 00 00 call ?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z ; std::vector >::_Change_array -; 806 : return _Newvec + _Whereoff; +; 766 : return _Newvec + _Whereoff; - 00235 48 8b 85 08 01 + 0024c 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 0023c 48 8b 8d 88 00 + 00253 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR _Whereoff$[rbp] - 00243 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] + 0025a 48 8d 04 88 lea rax, QWORD PTR [rax+rcx*4] -; 807 : } +; 767 : } - 00247 48 8d a5 38 02 + 0025e 48 8d a5 38 02 00 00 lea rsp, QWORD PTR [rbp+568] - 0024e 5f pop rdi - 0024f 5d pop rbp - 00250 c3 ret 0 + 00265 5f pop rdi + 00266 5d pop rbp + 00267 c3 ret 0 $LN11@Emplace_re: ??$_Emplace_reallocate@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAAPEAKQEAKAEBK@Z ENDP ; std::vector >::_Emplace_reallocate _TEXT ENDS @@ -7088,8 +6918,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 -; 798 : } -; 799 : _CATCH_ALL +; 758 : } +; 759 : _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 @@ -7099,9 +6929,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: -; 798 : } -; 799 : _CATCH_ALL -; 800 : _Destroy(_Constructed_first, _Constructed_last); +; 758 : } +; 759 : _CATCH_ALL +; 760 : _Destroy(_Constructed_first, _Constructed_last); 00014 4c 8b 85 28 01 00 00 mov r8, QWORD PTR _Constructed_last$[rbp] @@ -7111,10 +6941,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 -; 798 : } -; 799 : _CATCH_ALL -; 800 : _Destroy(_Constructed_first, _Constructed_last); -; 801 : _Al.deallocate(_Newvec, _Newcapacity); +; 758 : } +; 759 : _CATCH_ALL +; 760 : _Destroy(_Constructed_first, _Constructed_last); +; 761 : _Al.deallocate(_Newvec, _Newcapacity); 0002e 4c 8b 85 e8 00 00 00 mov r8, QWORD PTR _Newcapacity$[rbp] @@ -7123,23 +6953,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 -; 798 : } -; 799 : _CATCH_ALL -; 800 : _Destroy(_Constructed_first, _Constructed_last); -; 801 : _Al.deallocate(_Newvec, _Newcapacity); -; 802 : _RERAISE; +; 758 : } +; 759 : _CATCH_ALL +; 760 : _Destroy(_Constructed_first, _Constructed_last); +; 761 : _Al.deallocate(_Newvec, _Newcapacity); +; 762 : _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 -; 798 : } -; 799 : _CATCH_ALL -; 800 : _Destroy(_Constructed_first, _Constructed_last); -; 801 : _Al.deallocate(_Newvec, _Newcapacity); -; 802 : _RERAISE; -; 803 : _CATCH_END +; 758 : } +; 759 : _CATCH_ALL +; 760 : _Destroy(_Constructed_first, _Constructed_last); +; 761 : _Al.deallocate(_Newvec, _Newcapacity); +; 762 : _RERAISE; +; 763 : _CATCH_END 0004f 48 8d 05 00 00 00 00 lea rax, $LN10@catch$0 @@ -7171,7 +7001,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 -; 799 : _CATCH_ALL +; 759 : _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 @@ -7181,7 +7011,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: -; 800 : _Destroy(_Constructed_first, _Constructed_last); +; 760 : _Destroy(_Constructed_first, _Constructed_last); 00014 4c 8b 85 28 01 00 00 mov r8, QWORD PTR _Constructed_last$[rbp] @@ -7191,7 +7021,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 -; 801 : _Al.deallocate(_Newvec, _Newcapacity); +; 761 : _Al.deallocate(_Newvec, _Newcapacity); 0002e 4c 8b 85 e8 00 00 00 mov r8, QWORD PTR _Newcapacity$[rbp] @@ -7200,14 +7030,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 -; 802 : _RERAISE; +; 762 : _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 -; 803 : _CATCH_END +; 763 : _CATCH_END 0004f 48 8d 05 00 00 00 00 lea rax, $LN10@catch$0 @@ -7219,7 +7049,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.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??$construct@KAEBK@?$_Default_allocator_traits@V?$allocator@K@std@@@std@@SAXAEAV?$allocator@K@1@QEAKAEBK@Z _TEXT SEGMENT $T1 = 200 @@ -7228,7 +7058,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 -; 707 : static _CONSTEXPR20_DYNALLOC void construct(_Alloc&, _Objty* const _Ptr, _Types&&... _Args) { +; 693 : static void construct(_Alloc&, _Objty* const _Ptr, _Types&&... _Args) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -7239,44 +7069,41 @@ $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 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 + 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 00 00 mov QWORD PTR $T1[rbp], rax - 00049 48 8b 8d 10 01 + 00058 48 8b 8d 10 01 00 00 mov rcx, QWORD PTR <_Args_0>$[rbp] - 00050 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward - 00055 48 8b 8d c8 00 + 0005f e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward + 00064 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 + 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 00 00 lea rsp, QWORD PTR [rbp+232] - 00067 5f pop rdi - 00068 5d pop rbp - 00069 c3 ret 0 + 00076 5f pop rdi + 00077 5d pop rbp + 00078 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.29.30037\include\xstddef +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xstddef ; COMDAT ??$_Unfancy@K@std@@YAPEAKPEAK@Z _TEXT SEGMENT _Ptr$ = 224 @@ -7291,27 +7118,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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__40B2458B_xstddef - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 289 : return _Ptr; - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Ptr$[rbp] ; 290 : } - 00026 48 8d a5 c8 00 + 0003d 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 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 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.29.30037\include\vector -; COMDAT ??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA?A_TAEBK@Z +; 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 _TEXT SEGMENT _My_data$ = 8 _Mylast$ = 40 @@ -7321,9 +7154,9 @@ tv79 = 288 tv77 = 296 this$ = 336 <_Val_0>$ = 344 -??$_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 +??$_Emplace_back_with_unused_capacity@AEBK@?$vector@KV?$allocator@K@std@@@std@@AEAA@AEBK@Z PROC ; std::vector >::_Emplace_back_with_unused_capacity, COMDAT -; 721 : _CONSTEXPR20_CONTAINER decltype(auto) _Emplace_back_with_unused_capacity(_Valty&&... _Val) { +; 682 : decltype(auto) _Emplace_back_with_unused_capacity(_Valty&&... _Val) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -7333,98 +7166,104 @@ $LN3: 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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 722 : // insert by perfectly forwarding into element at end, provide strong guarantee -; 723 : auto& _My_data = _Mypair._Myval2; +; 683 : // insert by perfectly forwarding into element at end, provide strong guarantee +; 684 : auto& _My_data = _Mypair._Myval2; - 00024 48 8b 85 50 01 + 0003b 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 + 00042 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 724 : pointer& _Mylast = _My_data._Mylast; +; 685 : pointer& _Mylast = _My_data._Mylast; - 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 + 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 -; 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)...); +; 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)...); - 0003b 48 8b 8d 58 01 + 00052 48 8b 8d 58 01 00 00 mov rcx, QWORD PTR <_Val_0>$[rbp] - 00042 e8 00 00 00 00 call ??$forward@AEBK@std@@YAAEBKAEBK@Z ; std::forward - 00047 48 89 85 18 01 + 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 - 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 + 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 - 00061 48 8b 8d 50 01 + 00078 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 + 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 - 00074 4c 8b 85 18 01 + 0008b 4c 8b 85 18 01 00 00 mov r8, QWORD PTR tv81[rbp] - 0007b 48 8b 95 20 01 + 00092 48 8b 95 20 01 00 00 mov rdx, QWORD PTR tv79[rbp] - 00082 48 8b 8d 28 01 + 00099 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 + 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 -; 727 : _Orphan_range(_Mylast, _Mylast); +; 688 : _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 + 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] - 000a3 e8 00 00 00 00 call ?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range + 000ba e8 00 00 00 00 call ?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z ; std::vector >::_Orphan_range -; 728 : _Ty& _Result = *_Mylast; +; 689 : _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 + 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 -; 729 : ++_Mylast; +; 690 : ++_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 + 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 -; 730 : #if _HAS_CXX17 -; 731 : return _Result; +; 691 : #if _HAS_CXX17 +; 692 : return _Result; - 000c5 48 8b 45 48 mov rax, QWORD PTR _Result$[rbp] + 000dc 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 : } +; 693 : #else // ^^^ _HAS_CXX17 ^^^ // vvv !_HAS_CXX17 vvv +; 694 : (void) _Result; +; 695 : #endif // _HAS_CXX17 +; 696 : } - 000c9 48 8d a5 38 01 + 000e0 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 + 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.29.30037\include\type_traits +; 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 -; 1443 : remove_reference_t<_Ty>& _Arg) noexcept { // forward an lvalue as either an lvalue or an rvalue +; 1454 : 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 @@ -7433,27 +7272,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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D1154D4E_type_traits - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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); -; 1444 : return static_cast<_Ty&&>(_Arg); - - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Arg$[rbp] -; 1445 : } +; 1456 : } - 00026 48 8d a5 c8 00 + 0003d 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 + 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.29.30037\include\vector -; COMDAT ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z +; 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 @@ -7462,9 +7307,9 @@ 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 +??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z PROC ; std::vector >::emplace_back, COMDAT -; 739 : _CONSTEXPR20_CONTAINER decltype(auto) emplace_back(_Valty&&... _Val) { +; 700 : decltype(auto) emplace_back(_Valty&&... _Val) { $LN4: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -7474,119 +7319,349 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 740 : // insert by perfectly forwarding into element at end, provide strong guarantee -; 741 : auto& _My_data = _Mypair._Myval2; +; 701 : // insert by perfectly forwarding into element at end, provide strong guarantee +; 702 : auto& _My_data = _Mypair._Myval2; - 00024 48 8b 85 50 01 + 0003b 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 + 00042 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 742 : pointer& _Mylast = _My_data._Mylast; +; 703 : pointer& _Mylast = _My_data._Mylast; - 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 + 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 -; 743 : if (_Mylast != _My_data._Myend) { +; 704 : if (_Mylast != _My_data._Myend) { - 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 + 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 -; 744 : return _Emplace_back_with_unused_capacity(_STD forward<_Valty>(_Val)...); +; 705 : return _Emplace_back_with_unused_capacity(_STD forward<_Valty>(_Val)...); - 0004c 48 8b 8d 58 01 + 00063 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 + 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] - 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 + 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: -; 745 : } -; 746 : -; 747 : _Ty& _Result = *_Emplace_reallocate(_Mylast, _STD forward<_Valty>(_Val)...); +; 706 : } +; 707 : +; 708 : _Ty& _Result = *_Emplace_reallocate(_Mylast, _STD forward<_Valty>(_Val)...); - 00069 48 8b 8d 58 01 + 00080 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 + 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 - 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 + 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 00 00 mov QWORD PTR tv81[rbp], rax - 0008a 4c 8b 85 18 01 + 000a1 4c 8b 85 18 01 00 00 mov r8, QWORD PTR tv83[rbp] - 00091 48 8b 95 20 01 + 000a8 48 8b 95 20 01 00 00 mov rdx, QWORD PTR tv81[rbp] - 00098 48 8b 8d 50 01 + 000af 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 + 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 + 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 +_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 -; 748 : #if _HAS_CXX17 -; 749 : return _Result; +; 34 : _NODISCARD _Fillobj<_Elem> setfill(_Elem _Ch) { - 000a8 48 8b 45 48 mov rax, QWORD PTR _Result$[rbp] -$LN1@emplace_ba: +$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 -; 750 : #else // ^^^ _HAS_CXX17 ^^^ // vvv !_HAS_CXX17 vvv -; 751 : (void) _Result; -; 752 : #endif // _HAS_CXX17 -; 753 : } +; 35 : return _Fillobj<_Elem>(_Ch); - 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 + 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 _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 +; 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 _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 +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 -; 274 : _NODISCARD constexpr _Ty* addressof(_Ty& _Val) noexcept { +; 423 : const _Smanip<_Arg>& _Manip) { // insert by calling function with output stream and argument $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 + 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 -; 275 : return __builtin_addressof(_Val); +; 424 : (*_Manip._Pfun)(_Ostr, _Manip._Manarg); - 0001f 48 8b 85 e0 00 - 00 00 mov rax, QWORD PTR _Val$[rbp] + 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] -; 276 : } +; 425 : return _Ostr; - 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 > > + 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> _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 +; 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 _TEXT SEGMENT _State$ = 4 @@ -7622,7 +7697,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 -; 779 : basic_ostream& _Ostr, char _Ch) { // insert a char into char stream +; 780 : basic_ostream& _Ostr, char _Ch) { // insert a char into char stream $LN23: 00000 88 54 24 10 mov BYTE PTR [rsp+16], dl @@ -7632,414 +7707,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 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 + 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] - 00030 48 8b 05 00 00 + 0002e 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00037 48 33 c5 xor rax, rbp - 0003a 48 89 85 20 02 + 00035 48 33 c5 xor rax, rbp + 00038 48 89 85 20 02 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00041 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__65C59933_ostream - 00048 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1D745195_ostream + 00046 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 780 : using _Elem = char; -; 781 : using _Myos = basic_ostream<_Elem, _Traits>; -; 782 : -; 783 : ios_base::iostate _State = ios_base::goodbit; +; 781 : using _Elem = char; +; 782 : using _Myos = basic_ostream<_Elem, _Traits>; +; 783 : +; 784 : ios_base::iostate _State = ios_base::goodbit; - 0004d c7 45 04 00 00 + 0004b c7 45 04 00 00 00 00 mov DWORD PTR _State$[rbp], 0 -; 784 : const typename _Myos::sentry _Ok(_Ostr); +; 785 : const typename _Myos::sentry _Ok(_Ostr); - 00054 48 8b 95 50 02 + 00052 48 8b 95 50 02 00 00 mov rdx, QWORD PTR _Ostr$[rbp] - 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 + 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 -; 787 : streamsize _Pad = _Ostr.width() <= 1 ? 0 : _Ostr.width() - 1; +; 788 : streamsize _Pad = _Ostr.width() <= 1 ? 0 : _Ostr.width() - 1; - 00079 48 8b 85 50 02 + 00077 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 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 + 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] - 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 + 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 - 0009d 48 83 f8 01 cmp rax, 1 - 000a1 7f 0d jg SHORT $LN15@operator - 000a3 48 c7 85 08 02 + 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 - 000ae eb 2e jmp SHORT $LN16@operator + 000ac eb 2e jmp SHORT $LN16@operator $LN15@operator: - 000b0 48 8b 85 50 02 + 000ae 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 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 + 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] - 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 + 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 - 000d4 48 ff c8 dec rax - 000d7 48 89 85 08 02 + 000d2 48 ff c8 dec rax + 000d5 48 89 85 08 02 00 00 mov QWORD PTR tv130[rbp], rax $LN16@operator: - 000de 48 8b 85 08 02 + 000dc 48 8b 85 08 02 00 00 mov rax, QWORD PTR tv130[rbp] - 000e5 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax + 000e3 48 89 45 58 mov QWORD PTR _Pad$4[rbp], rax -; 788 : -; 789 : _TRY_IO_BEGIN -; 790 : if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left) { +; 789 : +; 790 : _TRY_IO_BEGIN +; 791 : if ((_Ostr.flags() & ios_base::adjustfield) != ios_base::left) { - 000e9 48 8b 85 50 02 + 000e7 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 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 + 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] - 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 + 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 - 0010d 89 85 04 02 00 + 0010b 89 85 04 02 00 00 mov DWORD PTR tv65[rbp], eax - 00113 8b 85 04 02 00 + 00111 8b 85 04 02 00 00 mov eax, DWORD PTR tv65[rbp] - 00119 25 c0 01 00 00 and eax, 448 ; 000001c0H - 0011e 83 f8 40 cmp eax, 64 ; 00000040H - 00121 0f 84 eb 00 00 + 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 -; 791 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on left +; 792 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on left - 00127 eb 0b jmp SHORT $LN4@operator + 00125 eb 0b jmp SHORT $LN4@operator $LN2@operator: - 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 + 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: - 00134 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 - 00138 0f 85 d4 00 00 + 00132 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 + 00136 0f 85 d4 00 00 00 jne $LN10@operator - 0013e 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 - 00143 0f 8e c9 00 00 + 0013c 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 + 00141 0f 8e c9 00 00 00 jle $LN10@operator -; 792 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { +; 793 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { - 00149 48 8b 85 50 02 + 00147 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 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 + 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] - 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 + 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 - 0016d 48 89 85 08 02 + 0016b 48 89 85 08 02 00 00 mov QWORD PTR tv300[rbp], rax - 00174 48 8b 85 08 02 + 00172 48 8b 85 08 02 00 00 mov rax, QWORD PTR tv300[rbp] - 0017b 48 89 85 10 02 + 00179 48 89 85 10 02 00 00 mov QWORD PTR tv179[rbp], rax - 00182 48 8b 85 50 02 + 00180 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 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 + 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] - 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 + 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 - 001a6 88 85 18 02 00 + 001a4 88 85 18 02 00 00 mov BYTE PTR tv301[rbp], al - 001ac 0f b6 85 18 02 + 001aa 0f b6 85 18 02 00 00 movzx eax, BYTE PTR tv301[rbp] - 001b3 88 85 19 02 00 + 001b1 88 85 19 02 00 00 mov BYTE PTR tv177[rbp], al - 001b9 0f b6 95 19 02 + 001b7 0f b6 95 19 02 00 00 movzx edx, BYTE PTR tv177[rbp] - 001c0 48 8b 8d 10 02 + 001be 48 8b 8d 10 02 00 00 mov rcx, QWORD PTR tv179[rbp] - 001c7 ff 15 00 00 00 + 001c5 ff 15 00 00 00 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z - 001cd 89 85 1c 02 00 + 001cb 89 85 1c 02 00 00 mov DWORD PTR tv302[rbp], eax - 001d3 8b 85 1c 02 00 + 001d1 8b 85 1c 02 00 00 mov eax, DWORD PTR tv302[rbp] - 001d9 89 85 34 01 00 + 001d7 89 85 34 01 00 00 mov DWORD PTR $T5[rbp], eax - 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 + 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 - 001ea 48 8d 95 34 01 + 001e8 48 8d 95 34 01 00 00 lea rdx, QWORD PTR $T5[rbp] - 001f1 48 8d 8d 54 01 + 001ef 48 8d 8d 54 01 00 00 lea rcx, QWORD PTR $T6[rbp] - 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 + 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 -; 793 : _State |= ios_base::badbit; +; 794 : _State |= ios_base::badbit; - 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 + 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: -; 794 : } -; 795 : } +; 795 : } +; 796 : } - 0020d e9 17 ff ff ff jmp $LN2@operator + 0020b e9 17 ff ff ff jmp $LN2@operator $LN10@operator: -; 796 : } -; 797 : -; 798 : if (_State == ios_base::goodbit && _Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ch))) { +; 797 : } +; 798 : +; 799 : if (_State == ios_base::goodbit && _Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ch))) { - 00212 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 - 00216 0f 85 8d 00 00 + 00210 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 + 00214 0f 85 8d 00 00 00 jne $LN12@operator - 0021c 48 8b 85 50 02 + 0021a 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 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 + 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] - 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 + 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 - 00240 48 89 85 08 02 + 0023e 48 89 85 08 02 00 00 mov QWORD PTR tv303[rbp], rax - 00247 48 8b 85 08 02 + 00245 48 8b 85 08 02 00 00 mov rax, QWORD PTR tv303[rbp] - 0024e 48 89 85 10 02 + 0024c 48 89 85 10 02 00 00 mov QWORD PTR tv204[rbp], rax - 00255 0f b6 95 58 02 + 00253 0f b6 95 58 02 00 00 movzx edx, BYTE PTR _Ch$[rbp] - 0025c 48 8b 8d 10 02 + 0025a 48 8b 8d 10 02 00 00 mov rcx, QWORD PTR tv204[rbp] - 00263 ff 15 00 00 00 + 00261 ff 15 00 00 00 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z - 00269 89 85 18 02 00 + 00267 89 85 18 02 00 00 mov DWORD PTR tv304[rbp], eax - 0026f 8b 85 18 02 00 + 0026d 8b 85 18 02 00 00 mov eax, DWORD PTR tv304[rbp] - 00275 89 85 74 01 00 + 00273 89 85 74 01 00 00 mov DWORD PTR $T7[rbp], eax - 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 + 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 - 00286 48 8d 95 74 01 + 00284 48 8d 95 74 01 00 00 lea rdx, QWORD PTR $T7[rbp] - 0028d 48 8d 8d 94 01 + 0028b 48 8d 8d 94 01 00 00 lea rcx, QWORD PTR $T8[rbp] - 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 + 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 -; 799 : _State |= ios_base::badbit; +; 800 : _State |= ios_base::badbit; - 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 + 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: -; 800 : } -; 801 : -; 802 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on right +; 801 : } +; 802 : +; 803 : for (; _State == ios_base::goodbit && 0 < _Pad; --_Pad) { // pad on right - 002a9 eb 0b jmp SHORT $LN7@operator + 002a7 eb 0b jmp SHORT $LN7@operator $LN5@operator: - 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 + 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: - 002b6 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 - 002ba 0f 85 d4 00 00 + 002b4 83 7d 04 00 cmp DWORD PTR _State$[rbp], 0 + 002b8 0f 85 d4 00 00 00 jne $LN6@operator - 002c0 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 - 002c5 0f 8e c9 00 00 + 002be 48 83 7d 58 00 cmp QWORD PTR _Pad$4[rbp], 0 + 002c3 0f 8e c9 00 00 00 jle $LN6@operator -; 803 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { +; 804 : if (_Traits::eq_int_type(_Traits::eof(), _Ostr.rdbuf()->sputc(_Ostr.fill()))) { - 002cb 48 8b 85 50 02 + 002c9 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 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 + 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] - 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 + 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 - 002ef 48 89 85 08 02 + 002ed 48 89 85 08 02 00 00 mov QWORD PTR tv305[rbp], rax - 002f6 48 8b 85 08 02 + 002f4 48 8b 85 08 02 00 00 mov rax, QWORD PTR tv305[rbp] - 002fd 48 89 85 10 02 + 002fb 48 89 85 10 02 00 00 mov QWORD PTR tv245[rbp], rax - 00304 48 8b 85 50 02 + 00302 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 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 + 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] - 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 + 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 - 00328 88 85 18 02 00 + 00326 88 85 18 02 00 00 mov BYTE PTR tv306[rbp], al - 0032e 0f b6 85 18 02 + 0032c 0f b6 85 18 02 00 00 movzx eax, BYTE PTR tv306[rbp] - 00335 88 85 19 02 00 + 00333 88 85 19 02 00 00 mov BYTE PTR tv243[rbp], al - 0033b 0f b6 95 19 02 + 00339 0f b6 95 19 02 00 00 movzx edx, BYTE PTR tv243[rbp] - 00342 48 8b 8d 10 02 + 00340 48 8b 8d 10 02 00 00 mov rcx, QWORD PTR tv245[rbp] - 00349 ff 15 00 00 00 + 00347 ff 15 00 00 00 00 call QWORD PTR __imp_?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z - 0034f 89 85 1c 02 00 + 0034d 89 85 1c 02 00 00 mov DWORD PTR tv307[rbp], eax - 00355 8b 85 1c 02 00 + 00353 8b 85 1c 02 00 00 mov eax, DWORD PTR tv307[rbp] - 0035b 89 85 b4 01 00 + 00359 89 85 b4 01 00 00 mov DWORD PTR $T9[rbp], eax - 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 + 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 - 0036c 48 8d 95 b4 01 + 0036a 48 8d 95 b4 01 00 00 lea rdx, QWORD PTR $T9[rbp] - 00373 48 8d 8d d4 01 + 00371 48 8d 8d d4 01 00 00 lea rcx, QWORD PTR $T10[rbp] - 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 + 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 -; 804 : _State |= ios_base::badbit; +; 805 : _State |= ios_base::badbit; - 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 + 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: -; 805 : } -; 806 : } +; 806 : } +; 807 : } - 0038f e9 17 ff ff ff jmp $LN5@operator + 0038d e9 17 ff ff ff jmp $LN5@operator $LN6@operator: - 00394 eb 00 jmp SHORT $LN8@operator + 00392 eb 00 jmp SHORT $LN8@operator $LN21@operator: $LN8@operator: -; 807 : _CATCH_IO_(ios_base, _Ostr) -; 808 : } -; 809 : -; 810 : _Ostr.width(0); +; 808 : _CATCH_IO_(ios_base, _Ostr) +; 809 : } +; 810 : +; 811 : _Ostr.width(0); - 00396 48 8b 85 50 02 + 00394 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 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 + 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] - 003ab 48 03 c8 add rcx, rax - 003ae 48 8b c1 mov rax, rcx - 003b1 48 89 85 08 02 + 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 - 003b8 33 d2 xor edx, edx - 003ba 48 8b 8d 08 02 + 003b6 33 d2 xor edx, edx + 003b8 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR tv281[rbp] - 003c1 ff 15 00 00 00 + 003bf ff 15 00 00 00 00 call QWORD PTR __imp_?width@ios_base@std@@QEAA_J_J@Z -; 811 : _Ostr.setstate(_State); +; 812 : _Ostr.setstate(_State); - 003c7 48 8b 85 50 02 + 003c5 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 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 + 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] - 003dc 48 03 c8 add rcx, rax - 003df 48 8b c1 mov rax, rcx - 003e2 48 89 85 08 02 + 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 - 003e9 45 33 c0 xor r8d, r8d - 003ec 8b 55 04 mov edx, DWORD PTR _State$[rbp] - 003ef 48 8b 8d 08 02 + 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] - 003f6 ff 15 00 00 00 + 003f4 ff 15 00 00 00 00 call QWORD PTR __imp_?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z -; 812 : return _Ostr; +; 813 : return _Ostr; - 003fc 48 8b 85 50 02 + 003fa 48 8b 85 50 02 00 00 mov rax, QWORD PTR _Ostr$[rbp] - 00403 48 89 85 f8 01 + 00401 48 89 85 f8 01 00 00 mov QWORD PTR $T11[rbp], rax - 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 + 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] -; 813 : } +; 814 : } - 0041a 48 8b f8 mov rdi, rax - 0041d 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00421 48 8d 15 00 00 + 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 - 00428 e8 00 00 00 00 call _RTC_CheckStackVars - 0042d 48 8b c7 mov rax, rdi - 00430 48 8b 8d 20 02 + 00426 e8 00 00 00 00 call _RTC_CheckStackVars + 0042b 48 8b c7 mov rax, rdi + 0042e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00437 48 33 cd xor rcx, rbp - 0043a e8 00 00 00 00 call __security_check_cookie - 0043f 48 8d a5 38 02 + 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] - 00446 5f pop rdi - 00447 5d pop rbp - 00448 c3 ret 0 + 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<< > _TEXT ENDS ; COMDAT text$x @@ -8125,7 +8200,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 -; 807 : _CATCH_IO_(ios_base, _Ostr) +; 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 @@ -8206,282 +8281,88 @@ _Ch$ = 600 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 -; 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 - -; 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 - 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 -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\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 + 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 ; 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 +; 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 -; 423 : const _Smanip<_Arg>& _Manip) { // insert by calling function with output stream and argument +; 808 : _CATCH_IO_(ios_base, _Ostr) -$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 + 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 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 + 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] - 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 + 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] - 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 + 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 +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\cmath +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\cmath ; COMDAT ??$log2@H$0A@@@YANH@Z _TEXT SEGMENT _Left$ = 224 ??$log2@H$0A@@@YANH@Z PROC ; log2, COMDAT -; 662 : _GENERIC_MATH1(log2) +; 636 : _GENERIC_MATH1(log2) $LN3: 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx @@ -8490,22 +8371,29 @@ $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 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 + 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 00 00 00 cvtsi2sd xmm0, DWORD PTR _Left$[rbp] - 00026 ff 15 00 00 00 + 0003c ff 15 00 00 00 00 call QWORD PTR __imp_log2 - 0002c 48 8d a5 c8 00 + 00042 90 npad 1 + 00043 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 + 0004a 5f pop rdi + 0004b 5d pop rbp + 0004c 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.29.30037\include\xutility +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -8518,7 +8406,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 -; 5340 : _NODISCARD _CONSTEXPR20 _InIt find(_InIt _First, const _InIt _Last, const _Ty& _Val) { // find first matching _Val +; 5171 : _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 @@ -8530,76 +8418,82 @@ $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 c7 85 e4 00 00 + 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 00 00 00 00 00 mov DWORD PTR $T2[rbp], 0 - 0002c 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__7CE971A6_xutility - 00033 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00043 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__4324C6B3_xutility + 0004a e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 5341 : _Adl_verify_range(_First, _Last); +; 5172 : _Adl_verify_range(_First, _Last); - 00038 48 8b 95 40 01 + 0004f 48 8b 95 40 01 00 00 mov rdx, QWORD PTR _Last$[rbp] - 0003f 48 8b 8d 38 01 + 00056 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR _First$[rbp] - 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 > > > + 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 > > > -; 5342 : _Seek_wrapped(_First, _Find_unchecked(_Get_unwrapped(_First), _Get_unwrapped(_Last), _Val)); +; 5173 : _Seek_wrapped(_First, _Find_unchecked(_Get_unwrapped(_First), _Get_unwrapped(_Last), _Val)); - 0004b 48 8b 8d 40 01 + 00062 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Last$[rbp] - 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 + 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 00 00 mov QWORD PTR tv79[rbp], rax - 0005e 48 8b 8d 38 01 + 00075 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR _First$[rbp] - 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 + 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 00 00 mov QWORD PTR tv77[rbp], rax - 00071 4c 8b 85 48 01 + 00088 4c 8b 85 48 01 00 00 mov r8, QWORD PTR _Val$[rbp] - 00078 48 8b 95 f8 00 + 0008f 48 8b 95 f8 00 00 00 mov rdx, QWORD PTR tv79[rbp] - 0007f 48 8b 8d 00 01 + 00096 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR tv77[rbp] - 00086 e8 00 00 00 00 call ??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z ; std::_Find_unchecked - 0008b 48 89 85 c8 00 + 0009d e8 00 00 00 00 call ??$_Find_unchecked@PEAKK@std@@YAPEAKQEAK0AEBK@Z ; std::_Find_unchecked + 000a2 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 00092 48 8d 95 c8 00 + 000a9 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00099 48 8b 8d 38 01 + 000b0 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR _First$[rbp] - 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 *> + 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 *> -; 5343 : return _First; +; 5174 : return _First; - 000a5 48 8b 95 38 01 + 000bc 48 8b 95 38 01 00 00 mov rdx, QWORD PTR _First$[rbp] - 000ac 48 8b 8d 30 01 + 000c3 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] - 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 + 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 00 mov eax, DWORD PTR $T2[rbp] - 000be 83 c8 01 or eax, 1 - 000c1 89 85 e4 00 00 + 000d5 83 c8 01 or eax, 1 + 000d8 89 85 e4 00 00 00 mov DWORD PTR $T2[rbp], eax - 000c7 48 8b 8d 38 01 + 000de 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR _First$[rbp] - 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 + 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 00 00 mov rcx, QWORD PTR _Last$[rbp] - 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 + 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 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] -; 5344 : } +; 5175 : } - 000e7 48 8d a5 18 01 + 000fe 48 8d a5 18 01 00 00 lea rsp, QWORD PTR [rbp+280] - 000ee 5f pop rdi - 000ef 5d pop rbp - 000f0 c3 ret 0 + 00105 5f pop rdi + 00106 5d pop rbp + 00107 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 @@ -8724,28 +8618,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 4c 8b 85 f0 00 + 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 00 00 mov r8, QWORD PTR __param1$[rbp] - 00024 48 8b 95 e8 00 + 0003b 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR __param0$[rbp] - 0002b 48 8b 8d e0 00 + 00042 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] - 0003e 48 8d a5 c8 00 + 00055 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 + 0005c 5f pop rdi + 0005d 5d pop rbp + 0005e 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@AEBV01@@Z +; COMDAT ??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z _TEXT SEGMENT this$ = 224 __that$ = 232 -??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@AEBV01@@Z PROC ; std::_Vector_iterator > >::_Vector_iterator > >, COMDAT +??0?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@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 @@ -8754,19 +8654,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 95 e8 00 + 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 00 00 mov rdx, QWORD PTR __that$[rbp] - 0001f 48 8b 8d e0 00 + 00036 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] - 00032 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 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 > > + 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 > > _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI ; COMDAT ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ @@ -8780,24 +8686,30 @@ $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 8d e0 00 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003d 5f pop rdi + 0003e 5d pop rbp + 0003f 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 335 : _NODISCARD _CONSTEXPR20_CONTAINER value_type* _Unwrapped() const noexcept { +; 309 : _NODISCARD value_type* _Unwrapped() const { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -8806,32 +8718,38 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 336 : return _Unfancy(this->_Ptr); + 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); - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 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 + 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 -; 337 : } +; 311 : } - 0002f 48 8d a5 c8 00 + 00046 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 + 0004d 5f pop rdi + 0004e 5d pop rbp + 0004f 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@AEBV01@@Z +; COMDAT ??0?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@$$QEAV01@@Z _TEXT SEGMENT this$ = 224 __that$ = 232 -??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 +??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 $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 @@ -8840,25 +8758,31 @@ $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 95 e8 00 + 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 00 00 mov rdx, QWORD PTR __that$[rbp] - 0001f 48 8b 8d e0 00 + 00036 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] - 00032 48 8b 8d e8 00 + 00049 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR __that$[rbp] - 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d a5 c8 00 + 0005f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 -??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 > > + 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 > > _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 @@ -8872,25 +8796,31 @@ $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 8d e0 00 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0001a e8 00 00 00 00 call ??1_Iterator_base12@std@@QEAA@XZ ; std::_Iterator_base12::~_Iterator_base12 - 0001f 48 8d a5 c8 00 + 00031 e8 00 00 00 00 call ??1_Iterator_base12@std@@QEAA@XZ ; std::_Iterator_base12::~_Iterator_base12 + 00036 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003d 5f pop rdi + 0003e 5d pop rbp + 0003f 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 208 : _CONSTEXPR20_CONTAINER void _Seek_to(const value_type* _It) noexcept { +; 194 : void _Seek_to(const value_type* _It) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -8900,30 +8830,36 @@ $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 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 + 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 00 00 mov rcx, QWORD PTR _It$[rbp] - 0002b e8 00 00 00 00 call ??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z ; std::_Refancy - 00030 48 8b 8d e0 00 + 00042 e8 00 00 00 00 call ??$_Refancy@PEAK$0A@@std@@YAPEAKPEAK@Z ; std::_Refancy + 00047 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00037 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0004e 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 210 : } +; 196 : } - 0003b 48 8d a5 c8 00 + 00052 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 + 00059 5f pop rdi + 0005a 5d pop rbp + 0005b 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -8931,7 +8867,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 -; 196 : const _Vector_const_iterator& _First, const _Vector_const_iterator& _Last) noexcept { +; 182 : friend void _Verify_range(const _Vector_const_iterator& _First, const _Vector_const_iterator& _Last) { $LN21: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -8941,130 +8877,138 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 $LN4@Verify_ran: -; 197 : _STL_VERIFY(_First._Getcont() == _Last._Getcont(), "vector iterators in range are from different containers"); +; 183 : _STL_VERIFY(_First._Getcont() == _Last._Getcont(), "vector iterators in range are from different containers"); - 00024 48 8b 8d f0 00 + 0003b 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR _First$[rbp] - 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 + 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 00 00 mov QWORD PTR tv69[rbp], rax - 00037 48 8b 8d f8 00 + 0004e 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _Last$[rbp] - 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 + 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 00 00 mov rcx, QWORD PTR tv69[rbp] - 0004a 48 3b c8 cmp rcx, rax - 0004d 75 02 jne SHORT $LN7@Verify_ran - 0004f eb 6b jmp SHORT $LN15@Verify_ran + 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: $LN7@Verify_ran: - 00051 48 8d 05 00 00 + 00068 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0DI@PBEELKIF@vector?5iterators?5in?5range?5are?5f@ - 00058 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 0005d 48 8d 05 00 00 + 0006f 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 00074 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 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 + 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 00 call QWORD PTR __imp__CrtDbgReport - 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 + 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 $LN19@Verify_ran: - 0008c 48 c7 44 24 20 + 000a3 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 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 + 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 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@ - 000a9 48 8d 0d 00 00 + 000c0 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@ - 000b0 ff 15 00 00 00 + 000c7 ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 000b6 33 c0 xor eax, eax - 000b8 85 c0 test eax, eax - 000ba 75 95 jne SHORT $LN7@Verify_ran + 000cd 33 c0 xor eax, eax + 000cf 85 c0 test eax, eax + 000d1 75 95 jne SHORT $LN7@Verify_ran $LN15@Verify_ran: - 000bc 33 c0 xor eax, eax - 000be 85 c0 test eax, eax - 000c0 0f 85 5e ff ff + 000d3 33 c0 xor eax, eax + 000d5 85 c0 test eax, eax + 000d7 0f 85 5e ff ff ff jne $LN4@Verify_ran $LN10@Verify_ran: -; 198 : _STL_VERIFY(_First._Ptr <= _Last._Ptr, "vector iterator range transposed"); +; 184 : _STL_VERIFY(_First._Ptr <= _Last._Ptr, "vector iterator range transposed"); - 000c6 48 8b 85 f0 00 + 000dd 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _First$[rbp] - 000cd 48 8b 8d f8 00 + 000e4 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _Last$[rbp] - 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 + 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: $LN13@Verify_ran: - 000e0 48 8d 05 00 00 + 000f7 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0CB@LIAHLBAO@vector?5iterator?5range?5transpose@ - 000e7 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 000ec 48 8d 05 00 00 + 000fe 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 00103 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 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 + 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 00 call QWORD PTR __imp__CrtDbgReport - 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 + 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 $LN20@Verify_ran: - 0011b 48 c7 44 24 20 + 00132 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 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 + 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 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@ - 00138 48 8d 0d 00 00 + 0014f 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@ - 0013f ff 15 00 00 00 + 00156 ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 00145 33 c0 xor eax, eax - 00147 85 c0 test eax, eax - 00149 75 95 jne SHORT $LN13@Verify_ran + 0015c 33 c0 xor eax, eax + 0015e 85 c0 test eax, eax + 00160 75 95 jne SHORT $LN13@Verify_ran $LN17@Verify_ran: - 0014b 33 c0 xor eax, eax - 0014d 85 c0 test eax, eax - 0014f 0f 85 71 ff ff + 00162 33 c0 xor eax, eax + 00164 85 c0 test eax, eax + 00166 0f 85 71 ff ff ff jne $LN10@Verify_ran -; 199 : } +; 185 : } - 00155 48 8d a5 d8 00 + 0016c 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 0015c 5f pop rdi - 0015d 5d pop rbp - 0015e c3 ret 0 + 00173 5f pop rdi + 00174 5d pop rbp + 00175 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ?_Compat@?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBAXAEBV12@@Z _TEXT SEGMENT tv69 = 192 @@ -9072,7 +9016,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 -; 185 : _CONSTEXPR20_CONTAINER void _Compat(const _Vector_const_iterator& _Right) const noexcept { +; 173 : void _Compat(const _Vector_const_iterator& _Right) const { // test for compatible iterator pair $LN12: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -9082,83 +9026,89 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 $LN4@Compat: -; 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"); +; 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"); - 00024 48 8b 8d f0 00 + 0003b 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 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 + 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 00 00 mov QWORD PTR tv69[rbp], rax - 00037 48 8b 8d f8 00 + 0004e 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _Right$[rbp] - 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 + 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 00 00 mov rcx, QWORD PTR tv69[rbp] - 0004a 48 3b c8 cmp rcx, rax - 0004d 75 02 jne SHORT $LN7@Compat - 0004f eb 6b jmp SHORT $LN9@Compat + 00061 48 3b c8 cmp rcx, rax + 00064 75 02 jne SHORT $LN8@Compat + 00066 eb 6b jmp SHORT $LN9@Compat +$LN8@Compat: $LN7@Compat: - 00051 48 8d 05 00 00 + 00068 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BO@CAOBBIOC@vector?5iterators?5incompatible@ - 00058 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 0005d 48 8d 05 00 00 + 0006f 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 00074 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 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 + 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 00 call QWORD PTR __imp__CrtDbgReport - 00084 83 f8 01 cmp eax, 1 - 00087 75 03 jne SHORT $LN11@Compat - 00089 cc int 3 - 0008a 33 c0 xor eax, eax + 0009b 83 f8 01 cmp eax, 1 + 0009e 75 03 jne SHORT $LN11@Compat + 000a0 cc int 3 + 000a1 33 c0 xor eax, eax $LN11@Compat: - 0008c 48 c7 44 24 20 + 000a3 48 c7 44 24 20 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 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 + 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 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@ - 000a9 48 8d 0d 00 00 + 000c0 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@ - 000b0 ff 15 00 00 00 + 000c7 ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 000b6 33 c0 xor eax, eax - 000b8 85 c0 test eax, eax - 000ba 75 95 jne SHORT $LN7@Compat + 000cd 33 c0 xor eax, eax + 000cf 85 c0 test eax, eax + 000d1 75 95 jne SHORT $LN7@Compat $LN9@Compat: - 000bc 33 c0 xor eax, eax - 000be 85 c0 test eax, eax - 000c0 0f 85 5e ff ff + 000d3 33 c0 xor eax, eax + 000d5 85 c0 test eax, eax + 000d7 0f 85 5e ff ff ff jne $LN4@Compat -; 191 : #endif // _ITERATOR_DEBUG_LEVEL == 0 -; 192 : } +; 178 : #endif // _ITERATOR_DEBUG_LEVEL == 0 +; 179 : } - 000c6 48 8d a5 d8 00 + 000dd 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 000cd 5f pop rdi - 000ce 5d pop rbp - 000cf c3 ret 0 + 000e4 5f pop rdi + 000e5 5d pop rbp + 000e6 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ??9?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z _TEXT SEGMENT tv69 = 192 @@ -9166,7 +9116,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 -; 163 : _NODISCARD bool operator!=(const _Vector_const_iterator& _Right) const noexcept { +; 152 : _NODISCARD bool operator!=(const _Vector_const_iterator& _Right) const { $LN5: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -9176,41 +9126,47 @@ $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 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 + 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 00 00 mov rdx, QWORD PTR _Right$[rbp] - 0002b 48 8b 8d f0 00 + 00042 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 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 + 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 00 01 00 00 00 mov DWORD PTR tv69[rbp], 1 - 00048 eb 0a jmp SHORT $LN4@operator + 0005f eb 0a jmp SHORT $LN4@operator $LN3@operator: - 0004a c7 85 c0 00 00 + 00061 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv69[rbp], 0 $LN4@operator: - 00054 0f b6 85 c0 00 + 0006b 0f b6 85 c0 00 00 00 movzx eax, BYTE PTR tv69[rbp] -; 165 : } +; 154 : } - 0005b 48 8d a5 d8 00 + 00072 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 00062 5f pop rdi - 00063 5d pop rbp - 00064 c3 ret 0 + 00079 5f pop rdi + 0007a 5d pop rbp + 0007b 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ??8?$_Vector_const_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEBA_NAEBV01@@Z _TEXT SEGMENT tv69 = 192 @@ -9218,7 +9174,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 -; 152 : _NODISCARD _CONSTEXPR20_CONTAINER bool operator==(const _Vector_const_iterator& _Right) const noexcept { +; 147 : _NODISCARD bool operator==(const _Vector_const_iterator& _Right) const { $LN5: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -9228,48 +9184,54 @@ $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 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 + 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 00 00 mov rdx, QWORD PTR _Right$[rbp] - 0002b 48 8b 8d f0 00 + 00042 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 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 + 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 -; 154 : return _Ptr == _Right._Ptr; +; 149 : return _Ptr == _Right._Ptr; - 00037 48 8b 85 f0 00 + 0004e 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003e 48 8b 8d f8 00 + 00055 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _Right$[rbp] - 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 + 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 00 01 00 00 00 mov DWORD PTR tv69[rbp], 1 - 00059 eb 0a jmp SHORT $LN4@operator + 00070 eb 0a jmp SHORT $LN4@operator $LN3@operator: - 0005b c7 85 c0 00 00 + 00072 c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv69[rbp], 0 $LN4@operator: - 00065 0f b6 85 c0 00 + 0007c 0f b6 85 c0 00 00 00 movzx eax, BYTE PTR tv69[rbp] -; 155 : } +; 150 : } - 0006c 48 8d a5 d8 00 + 00083 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 + 0008a 5f pop rdi + 0008b 5d pop rbp + 0008c 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -9277,7 +9239,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 : _CONSTEXPR20_CONTAINER _Vector_const_iterator(_Tptr _Parg, const _Container_base* _Pvector) noexcept : _Ptr(_Parg) { +; 42 : _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 @@ -9288,39 +9250,45 @@ $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 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 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00030 e8 00 00 00 00 call ??0_Iterator_base12@std@@QEAA@XZ ; std::_Iterator_base12::_Iterator_base12 - 00035 48 8b 85 e0 00 + 00047 e8 00 00 00 00 call ??0_Iterator_base12@std@@QEAA@XZ ; std::_Iterator_base12::_Iterator_base12 + 0004c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003c 48 8b 8d e8 00 + 00053 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Parg$[rbp] - 00043 48 89 48 10 mov QWORD PTR [rax+16], rcx + 0005a 48 89 48 10 mov QWORD PTR [rax+16], rcx ; 43 : this->_Adopt(_Pvector); - 00047 48 8b 95 f0 00 + 0005e 48 8b 95 f0 00 00 00 mov rdx, QWORD PTR _Pvector$[rbp] - 0004e 48 8b 8d e0 00 + 00065 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00055 e8 00 00 00 00 call ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z ; std::_Iterator_base12::_Adopt + 0006c e8 00 00 00 00 call ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z ; std::_Iterator_base12::_Adopt ; 44 : } - 0005a 48 8b 85 e0 00 + 00071 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00061 48 8d a5 c8 00 + 00078 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 + 0007f 5f pop rdi + 00080 5d pop rbp + 00081 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:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT T$1 = 8 @@ -9336,7 +9304,7 @@ tv142 = 368 Block$ = 416 ?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcPrintBlockCode, COMDAT -; 567 : { +; 579 : { $LN10: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -9345,136 +9313,142 @@ $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 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) - - 0001f 48 8b 85 a0 01 + 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 + +; 580 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) + + 00036 48 8b 85 a0 01 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 $LN2@NcPrintBlo: - 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 + 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 $LN4@NcPrintBlo: - 0003a 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 - 0003f 0f 84 03 01 00 + 00051 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 00056 0f 84 03 01 00 00 je $LN3@NcPrintBlo - 00045 48 8b 85 a0 01 + 0005c 48 8b 85 a0 01 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 00 je $LN3@NcPrintBlo -; 569 : { -; 570 : if (!(T->Flags & CODE_FLAG_IS_LABEL)) +; 581 : { +; 582 : if (!(T->Flags & CODE_FLAG_IS_LABEL)) - 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 + 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 00 jne $LN8@NcPrintBlo -; 571 : { -; 572 : for (uint32_t i = 0; i < T->RawDataSize; i++) +; 583 : { +; 584 : for (uint32_t i = 0; i < T->RawDataSize; i++) - 0006f c7 45 24 00 00 + 00086 c7 45 24 00 00 00 00 mov DWORD PTR i$2[rbp], 0 - 00076 eb 08 jmp SHORT $LN7@NcPrintBlo + 0008d eb 08 jmp SHORT $LN7@NcPrintBlo $LN5@NcPrintBlo: - 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 + 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 $LN7@NcPrintBlo: - 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 + 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 00 jae $LN6@NcPrintBlo -; 573 : { -; 574 : std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)T->RawData[i] << ' '; +; 585 : { +; 586 : std::cout << std::hex << std::setw(2) << std::setfill('0') << (int)T->RawData[i] << ' '; - 00090 48 8d 15 00 00 + 000a7 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?hex@std@@YAAEAVios_base@1@AEAV21@@Z ; std::hex - 00097 48 8b 0d 00 00 + 000ae 48 8b 0d 00 00 00 00 mov rcx, QWORD PTR __imp_?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A - 0009e ff 15 00 00 00 + 000b5 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 - 000a4 48 89 85 48 01 + 000bb 48 89 85 48 01 00 00 mov QWORD PTR tv93[rbp], rax - 000ab ba 02 00 00 00 mov edx, 2 - 000b0 48 8d 8d 28 01 + 000c2 ba 02 00 00 00 mov edx, 2 + 000c7 48 8d 8d 28 01 00 00 lea rcx, QWORD PTR $T4[rbp] - 000b7 e8 00 00 00 00 call ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z ; std::setw - 000bc 48 89 85 50 01 + 000ce e8 00 00 00 00 call ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z ; std::setw + 000d3 48 89 85 50 01 00 00 mov QWORD PTR tv95[rbp], rax - 000c3 48 8b 95 50 01 + 000da 48 8b 95 50 01 00 00 mov rdx, QWORD PTR tv95[rbp] - 000ca 48 8b 8d 48 01 + 000e1 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 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 + 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 00 00 mov QWORD PTR tv130[rbp], rax - 000dd b2 30 mov dl, 48 ; 00000030H - 000df 48 8d 8d 04 01 + 000f4 b2 30 mov dl, 48 ; 00000030H + 000f6 48 8d 8d 04 01 00 00 lea rcx, QWORD PTR $T3[rbp] - 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 + 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 00 00 mov QWORD PTR tv132[rbp], rax - 000f2 48 8b 95 60 01 + 00109 48 8b 95 60 01 00 00 mov rdx, QWORD PTR tv132[rbp] - 000f9 48 8b 8d 58 01 + 00110 48 8b 8d 58 01 00 00 mov rcx, QWORD PTR tv130[rbp] - 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 + 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 00 00 mov QWORD PTR tv144[rbp], rax - 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 + 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 00 mov DWORD PTR tv142[rbp], eax - 00121 8b 95 70 01 00 + 00138 8b 95 70 01 00 00 mov edx, DWORD PTR tv142[rbp] - 00127 48 8b 8d 68 01 + 0013e 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR tv144[rbp] - 0012e ff 15 00 00 00 + 00145 ff 15 00 00 00 00 call QWORD PTR __imp_??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z - 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<< > + 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<< > -; 575 : } +; 587 : } - 0013e e9 35 ff ff ff jmp $LN5@NcPrintBlo + 00155 e9 35 ff ff ff jmp $LN5@NcPrintBlo $LN6@NcPrintBlo: $LN8@NcPrintBlo: -; 576 : } -; 577 : } +; 588 : } +; 589 : } - 00143 e9 e7 fe ff ff jmp $LN2@NcPrintBlo + 0015a e9 e7 fe ff ff jmp $LN2@NcPrintBlo $LN3@NcPrintBlo: -; 578 : } +; 590 : } - 00148 48 8d a5 88 01 + 0015f 48 8d a5 88 01 00 00 lea rsp, QWORD PTR [rbp+392] - 0014f 5f pop rdi - 00150 5d pop rbp - 00151 c3 ret 0 + 00166 5f pop rdi + 00167 5d pop rbp + 00168 c3 ret 0 ?NcPrintBlockCode@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcPrintBlockCode _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT ConsoleHandle$ = 8 @@ -9485,7 +9459,7 @@ tv129 = 280 Block$ = 320 ?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcDebugPrint, COMDAT -; 537 : { +; 549 : { $LN11: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -9494,169 +9468,175 @@ $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 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); - - 0001f b9 f5 ff ff ff mov ecx, -11 ; fffffff5H - 00024 ff 15 00 00 00 + 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 + +; 550 : HANDLE ConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE); + + 00036 b9 f5 ff ff ff mov ecx, -11 ; fffffff5H + 0003b ff 15 00 00 00 00 call QWORD PTR __imp_GetStdHandle - 0002a 48 89 45 08 mov QWORD PTR ConsoleHandle$[rbp], rax + 00041 48 89 45 08 mov QWORD PTR ConsoleHandle$[rbp], rax -; 539 : if (!ConsoleHandle) +; 551 : if (!ConsoleHandle) - 0002e 48 83 7d 08 00 cmp QWORD PTR ConsoleHandle$[rbp], 0 - 00033 75 05 jne SHORT $LN5@NcDebugPri + 00045 48 83 7d 08 00 cmp QWORD PTR ConsoleHandle$[rbp], 0 + 0004a 75 05 jne SHORT $LN5@NcDebugPri -; 540 : return; +; 552 : return; - 00035 e9 03 01 00 00 jmp $LN1@NcDebugPri + 0004c 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) +; 553 : +; 554 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 0003a 48 8b 85 40 01 + 00051 48 8b 85 40 01 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 $LN2@NcDebugPri: - 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 + 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 $LN4@NcDebugPri: - 00055 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 - 0005a 0f 84 dd 00 00 + 0006c 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 + 00071 0f 84 dd 00 00 00 je $LN3@NcDebugPri - 00060 48 8b 85 40 01 + 00077 48 8b 85 40 01 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 00 je $LN3@NcDebugPri -; 543 : { -; 544 : if (T->Flags & CODE_FLAG_IS_LABEL) +; 555 : { +; 556 : if (T->Flags & CODE_FLAG_IS_LABEL) - 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 + 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 -; 545 : { -; 546 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_RED); +; 557 : { +; 558 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_RED); - 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 + 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 00 call QWORD PTR __imp_SetConsoleTextAttribute -; 547 : printf("Label: %u\n", T->Label); +; 559 : printf("Label: %u\n", T->Label); - 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 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0L@ILJOJNOL@Label?3?5?$CFu?6@ - 000a2 e8 00 00 00 00 call printf + 000b9 e8 00 00 00 00 call printf -; 548 : } +; 560 : } - 000a7 e9 8c 00 00 00 jmp $LN7@NcDebugPri + 000be e9 8c 00 00 00 jmp $LN7@NcDebugPri $LN6@NcDebugPri: -; 549 : else -; 550 : { -; 551 : XED_ICLASS_ENUM IClass = XedDecodedInstGetIClass(&T->XedInstruction); +; 561 : else +; 562 : { +; 563 : XED_ICLASS_ENUM IClass = XedDecodedInstGetIClass(&T->XedInstruction); - 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 + 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 -; 552 : if (T->Flags & CODE_FLAG_IS_REL_JMP) +; 564 : if (T->Flags & CODE_FLAG_IS_REL_JMP) - 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 + 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 -; 553 : { -; 554 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_RED); +; 565 : { +; 566 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_RED); - 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 + 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 00 call QWORD PTR __imp_SetConsoleTextAttribute -; 555 : printf("%s: %u\n", XedIClassEnumToString(IClass), T->Label); +; 567 : printf("%s: %u\n", XedIClassEnumToString(IClass), T->Label); - 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 + 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 00 mov DWORD PTR tv131[rbp], eax - 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 + 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 00 00 mov QWORD PTR tv129[rbp], rax - 000f7 44 8b 85 14 01 + 0010e 44 8b 85 14 01 00 00 mov r8d, DWORD PTR tv131[rbp] - 000fe 48 8b 95 18 01 + 00115 48 8b 95 18 01 00 00 mov rdx, QWORD PTR tv129[rbp] - 00105 48 8d 0d 00 00 + 0011c 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_07KNNCJAOA@?$CFs?3?5?$CFu?6@ - 0010c e8 00 00 00 00 call printf + 00123 e8 00 00 00 00 call printf -; 556 : } +; 568 : } - 00111 eb 25 jmp SHORT $LN9@NcDebugPri + 00128 eb 25 jmp SHORT $LN9@NcDebugPri $LN8@NcDebugPri: -; 557 : else -; 558 : { -; 559 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_BLUE); +; 569 : else +; 570 : { +; 571 : SetConsoleTextAttribute(ConsoleHandle, FOREGROUND_GREEN | FOREGROUND_BLUE); - 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 + 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 00 call QWORD PTR __imp_SetConsoleTextAttribute -; 560 : printf("%s\n", XedIClassEnumToString(IClass)); +; 572 : printf("%s\n", XedIClassEnumToString(IClass)); - 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 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_03OFAPEBGM@?$CFs?6@ - 00133 e8 00 00 00 00 call printf + 0014a e8 00 00 00 00 call printf $LN9@NcDebugPri: $LN7@NcDebugPri: -; 561 : } -; 562 : } -; 563 : } +; 573 : } +; 574 : } +; 575 : } - 00138 e9 0d ff ff ff jmp $LN2@NcDebugPri + 0014f e9 0d ff ff ff jmp $LN2@NcDebugPri $LN3@NcDebugPri: $LN1@NcDebugPri: -; 564 : } +; 576 : } - 0013d 48 8d a5 28 01 + 00154 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 00144 5f pop rdi - 00145 5d pop rbp - 00146 c3 ret 0 + 0015b 5f pop rdi + 0015c 5d pop rbp + 0015d c3 ret 0 ?NcDebugPrint@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcDebugPrint _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT BlockEnding$ = 8 @@ -9667,7 +9647,7 @@ tv78 = 312 Block$ = 352 ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcDeleteBlock, COMDAT -; 522 : { +; 534 : { $LN10: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -9676,100 +9656,106 @@ $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 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) - - 0001f 48 8b 85 60 01 + 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 + +; 535 : if (!Block->Start || !Block->End) + + 00036 48 8b 85 60 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00026 48 83 38 00 cmp QWORD PTR [rax], 0 - 0002a 74 0e je SHORT $LN6@NcDeleteBl - 0002c 48 8b 85 60 01 + 0003d 48 83 38 00 cmp QWORD PTR [rax], 0 + 00041 74 0e je SHORT $LN6@NcDeleteBl + 00043 48 8b 85 60 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00033 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 00038 75 05 jne SHORT $LN5@NcDeleteBl + 0004a 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 0004f 75 05 jne SHORT $LN5@NcDeleteBl $LN6@NcDeleteBl: -; 524 : return; +; 536 : return; - 0003a e9 80 00 00 00 jmp $LN1@NcDeleteBl + 00051 e9 80 00 00 00 jmp $LN1@NcDeleteBl $LN5@NcDeleteBl: -; 525 : -; 526 : PNATIVE_CODE_LINK BlockEnding = Block->End->Next; +; 537 : +; 538 : PNATIVE_CODE_LINK BlockEnding = Block->End->Next; - 0003f 48 8b 85 60 01 + 00056 48 8b 85 60 01 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 -; 527 : -; 528 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != BlockEnding;) +; 539 : +; 540 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != BlockEnding;) - 00051 48 8b 85 60 01 + 00068 48 8b 85 60 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 + 0006f 48 8b 00 mov rax, QWORD PTR [rax] + 00072 48 89 45 28 mov QWORD PTR T$1[rbp], rax $LN2@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 + 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 -; 529 : { -; 530 : PNATIVE_CODE_LINK Next = T->Next; +; 541 : { +; 542 : PNATIVE_CODE_LINK Next = T->Next; - 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 + 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 -; 531 : delete T; +; 543 : delete T; - 0007b 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 0007f 48 89 85 28 01 + 00092 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00096 48 89 85 28 01 00 00 mov QWORD PTR $T3[rbp], rax - 00086 48 83 bd 28 01 + 0009d 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T3[rbp], 0 - 0008e 74 1a je SHORT $LN8@NcDeleteBl - 00090 ba 01 00 00 00 mov edx, 1 - 00095 48 8b 8d 28 01 + 000a5 74 1a je SHORT $LN8@NcDeleteBl + 000a7 ba 01 00 00 00 mov edx, 1 + 000ac 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T3[rbp] - 0009c e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 000a1 48 89 85 38 01 + 000b3 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 000b8 48 89 85 38 01 00 00 mov QWORD PTR tv78[rbp], rax - 000a8 eb 0b jmp SHORT $LN9@NcDeleteBl + 000bf eb 0b jmp SHORT $LN9@NcDeleteBl $LN8@NcDeleteBl: - 000aa 48 c7 85 38 01 + 000c1 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv78[rbp], 0 $LN9@NcDeleteBl: -; 532 : T = Next; +; 544 : T = Next; - 000b5 48 8b 45 48 mov rax, QWORD PTR Next$2[rbp] - 000b9 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 000cc 48 8b 45 48 mov rax, QWORD PTR Next$2[rbp] + 000d0 48 89 45 28 mov QWORD PTR T$1[rbp], rax -; 533 : } +; 545 : } - 000bd eb a0 jmp SHORT $LN2@NcDeleteBl + 000d4 eb a0 jmp SHORT $LN2@NcDeleteBl $LN3@NcDeleteBl: $LN1@NcDeleteBl: -; 534 : } +; 546 : } - 000bf 48 8d a5 48 01 + 000d6 48 8d a5 48 01 00 00 lea rsp, QWORD PTR [rbp+328] - 000c6 5f pop rdi - 000c7 5d pop rbp - 000c8 c3 ret 0 + 000dd 5f pop rdi + 000de 5d pop rbp + 000df c3 ret 0 ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcDeleteBlock _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z _TEXT SEGMENT Buffer$ = 8 @@ -9779,7 +9765,7 @@ Block$ = 320 OutSize$ = 328 ?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z PROC ; NcAssemble, COMDAT -; 497 : { +; 509 : { $LN9: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -9789,140 +9775,146 @@ $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 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)) + 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 + +; 510 : if (!NcFixRelJmps(Block)) - 00024 48 8b 8d 40 01 + 0003b 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 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 + 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 -; 499 : return NULL; +; 511 : return NULL; - 00034 33 c0 xor eax, eax - 00036 e9 bc 00 00 00 jmp $LN1@NcAssemble + 0004b 33 c0 xor eax, eax + 0004d e9 bc 00 00 00 jmp $LN1@NcAssemble $LN5@NcAssemble: -; 500 : -; 501 : *OutSize = NcCalcBlockSize(Block); +; 512 : +; 513 : *OutSize = NcCalcBlockSizeInBytes(Block); - 0003b 48 8b 8d 40 01 + 00052 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00042 e8 00 00 00 00 call ?NcCalcBlockSize@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCalcBlockSize - 00047 48 8b 8d 48 01 + 00059 e8 00 00 00 00 call ?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCalcBlockSizeInBytes + 0005e 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR OutSize$[rbp] - 0004e 89 01 mov DWORD PTR [rcx], eax + 00065 89 01 mov DWORD PTR [rcx], eax -; 502 : -; 503 : PUCHAR Buffer = (PUCHAR)malloc(*OutSize); +; 514 : +; 515 : PUCHAR Buffer = (PUCHAR)malloc(*OutSize); - 00050 48 8b 85 48 01 + 00067 48 8b 85 48 01 00 00 mov rax, QWORD PTR OutSize$[rbp] - 00057 8b 00 mov eax, DWORD PTR [rax] - 00059 8b c8 mov ecx, eax - 0005b ff 15 00 00 00 + 0006e 8b 00 mov eax, DWORD PTR [rax] + 00070 8b c8 mov ecx, eax + 00072 ff 15 00 00 00 00 call QWORD PTR __imp_malloc - 00061 48 89 45 08 mov QWORD PTR Buffer$[rbp], rax + 00078 48 89 45 08 mov QWORD PTR Buffer$[rbp], rax -; 504 : if (!Buffer) +; 516 : if (!Buffer) - 00065 48 83 7d 08 00 cmp QWORD PTR Buffer$[rbp], 0 - 0006a 75 07 jne SHORT $LN6@NcAssemble + 0007c 48 83 7d 08 00 cmp QWORD PTR Buffer$[rbp], 0 + 00081 75 07 jne SHORT $LN6@NcAssemble -; 505 : return NULL; +; 517 : return NULL; - 0006c 33 c0 xor eax, eax - 0006e e9 84 00 00 00 jmp $LN1@NcAssemble + 00083 33 c0 xor eax, eax + 00085 e9 84 00 00 00 jmp $LN1@NcAssemble $LN6@NcAssemble: -; 506 : -; 507 : PUCHAR BufferOffset = Buffer; +; 518 : +; 519 : PUCHAR BufferOffset = Buffer; - 00073 48 8b 45 08 mov rax, QWORD PTR Buffer$[rbp] - 00077 48 89 45 28 mov QWORD PTR BufferOffset$[rbp], rax + 0008a 48 8b 45 08 mov rax, QWORD PTR Buffer$[rbp] + 0008e 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) +; 520 : +; 521 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 0007b 48 8b 85 40 01 + 00092 48 8b 85 40 01 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 $LN2@NcAssemble: - 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 + 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 $LN4@NcAssemble: - 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 + 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 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 -; 510 : { -; 511 : if (T->Flags & CODE_FLAG_IS_LABEL) +; 522 : { +; 523 : if (T->Flags & CODE_FLAG_IS_LABEL) - 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 + 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 -; 512 : continue; +; 524 : continue; - 000bf eb ca jmp SHORT $LN2@NcAssemble + 000d6 eb ca jmp SHORT $LN2@NcAssemble $LN7@NcAssemble: -; 513 : -; 514 : RtlCopyMemory(BufferOffset, T->RawData, T->RawDataSize); +; 525 : +; 526 : RtlCopyMemory(BufferOffset, T->RawData, T->RawDataSize); - 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 + 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 -; 515 : BufferOffset += T->RawDataSize; +; 527 : BufferOffset += T->RawDataSize; - 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 + 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 -; 516 : } +; 528 : } - 000f1 eb 98 jmp SHORT $LN2@NcAssemble + 00108 eb 98 jmp SHORT $LN2@NcAssemble $LN3@NcAssemble: -; 517 : -; 518 : return Buffer; +; 529 : +; 530 : return Buffer; - 000f3 48 8b 45 08 mov rax, QWORD PTR Buffer$[rbp] + 0010a 48 8b 45 08 mov rax, QWORD PTR Buffer$[rbp] $LN1@NcAssemble: -; 519 : } +; 531 : } - 000f7 48 8d a5 28 01 + 0010e 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000fe 5f pop rdi - 000ff 5d pop rbp - 00100 c3 ret 0 + 00115 5f pop rdi + 00116 5d pop rbp + 00117 c3 ret 0 ?NcAssemble@@YAPEAXPEAU_NATIVE_CODE_BLOCK@@PEAK@Z ENDP ; NcAssemble _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z _TEXT SEGMENT Buf$ = 8 @@ -9942,7 +9934,7 @@ Buffer$ = 520 BufferSize$ = 528 ?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z PROC ; NcDisassemble, COMDAT -; 465 : { +; 477 : { $LN13: 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d @@ -9953,235 +9945,241 @@ $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 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; - - 00029 48 8b 85 08 02 + 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 + +; 478 : PUCHAR Buf = (PUCHAR)Buffer; + + 00040 48 8b 85 08 02 00 00 mov rax, QWORD PTR Buffer$[rbp] - 00030 48 89 45 08 mov QWORD PTR Buf$[rbp], rax + 00047 48 89 45 08 mov QWORD PTR Buf$[rbp], rax -; 467 : ULONG Offset = 0; +; 479 : ULONG Offset = 0; - 00034 c7 45 24 00 00 + 0004b c7 45 24 00 00 00 00 mov DWORD PTR Offset$[rbp], 0 $LN2@NcDisassem: -; 468 : -; 469 : while (Offset < BufferSize) +; 480 : +; 481 : while (Offset < BufferSize) - 0003b 8b 85 10 02 00 + 00052 8b 85 10 02 00 00 mov eax, DWORD PTR BufferSize$[rbp] - 00041 39 45 24 cmp DWORD PTR Offset$[rbp], eax - 00044 0f 83 b8 01 00 + 00058 39 45 24 cmp DWORD PTR Offset$[rbp], eax + 0005b 0f 83 b8 01 00 00 jae $LN3@NcDisassem -; 470 : { -; 471 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK; +; 482 : { +; 483 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK; - 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 + 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 00 00 mov QWORD PTR $T5[rbp], rax - 0005b 48 83 bd 88 01 + 00072 48 83 bd 88 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00063 74 15 je SHORT $LN6@NcDisassem - 00065 48 8b 8d 88 01 + 0007a 74 15 je SHORT $LN6@NcDisassem + 0007c 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 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 + 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 00 00 mov QWORD PTR tv76[rbp], rax - 00078 eb 0b jmp SHORT $LN7@NcDisassem + 0008f eb 0b jmp SHORT $LN7@NcDisassem $LN6@NcDisassem: - 0007a 48 c7 85 d8 01 + 00091 48 c7 85 d8 01 00 00 00 00 00 00 mov QWORD PTR tv76[rbp], 0 $LN7@NcDisassem: - 00085 48 8b 85 d8 01 + 0009c 48 8b 85 d8 01 00 00 mov rax, QWORD PTR tv76[rbp] - 0008c 48 89 85 68 01 + 000a3 48 89 85 68 01 00 00 mov QWORD PTR $T4[rbp], rax - 00093 48 8b 85 68 01 + 000aa 48 8b 85 68 01 00 00 mov rax, QWORD PTR $T4[rbp] - 0009a 48 89 45 48 mov QWORD PTR Link$1[rbp], rax + 000b1 48 89 45 48 mov QWORD PTR Link$1[rbp], rax -; 472 : Link->Flags = CODE_FLAG_IS_INST; +; 484 : Link->Flags = CODE_FLAG_IS_INST; - 0009e 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] - 000a2 c7 40 18 04 00 + 000b5 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 000b9 c7 40 18 04 00 00 00 mov DWORD PTR [rax+24], 4 -; 473 : ULONG PossibleSize = min(15, BufferSize - Offset); +; 485 : ULONG PossibleSize = min(15, BufferSize - Offset); - 000a9 8b 45 24 mov eax, DWORD PTR Offset$[rbp] - 000ac 8b 8d 10 02 00 + 000c0 8b 45 24 mov eax, DWORD PTR Offset$[rbp] + 000c3 8b 8d 10 02 00 00 mov ecx, DWORD PTR BufferSize$[rbp] - 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 + 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 00 0f 00 00 00 mov DWORD PTR tv80[rbp], 15 - 000c5 eb 13 jmp SHORT $LN9@NcDisassem + 000dc eb 13 jmp SHORT $LN9@NcDisassem $LN8@NcDisassem: - 000c7 8b 45 24 mov eax, DWORD PTR Offset$[rbp] - 000ca 8b 8d 10 02 00 + 000de 8b 45 24 mov eax, DWORD PTR Offset$[rbp] + 000e1 8b 8d 10 02 00 00 mov ecx, DWORD PTR BufferSize$[rbp] - 000d0 2b c8 sub ecx, eax - 000d2 8b c1 mov eax, ecx - 000d4 89 85 d4 01 00 + 000e7 2b c8 sub ecx, eax + 000e9 8b c1 mov eax, ecx + 000eb 89 85 d4 01 00 00 mov DWORD PTR tv80[rbp], eax $LN9@NcDisassem: - 000da 8b 85 d4 01 00 + 000f1 8b 85 d4 01 00 00 mov eax, DWORD PTR tv80[rbp] - 000e0 89 45 64 mov DWORD PTR PossibleSize$2[rbp], eax - -; 474 : XED_ERROR_ENUM DecodeError = XedDecode(&Link->XedInstruction, (Buf + Offset), PossibleSize); - - 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 + 000f7 89 45 64 mov DWORD PTR PossibleSize$2[rbp], eax + +; 486 : 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 00 mov DWORD PTR DecodeError$3[rbp], eax -; 475 : if (DecodeError != XED_ERROR_NONE) +; 487 : if (DecodeError != XED_ERROR_NONE) - 0010a 83 bd 84 00 00 + 00121 83 bd 84 00 00 00 00 cmp DWORD PTR DecodeError$3[rbp], 0 - 00111 74 67 je SHORT $LN4@NcDisassem + 00128 74 67 je SHORT $LN4@NcDisassem -; 476 : { -; 477 : printf("XedDecode failed with error %s\n", XedErrorEnumToString(DecodeError)); +; 488 : { +; 489 : printf("XedDecode failed with error %s\n", XedErrorEnumToString(DecodeError)); - 00113 8b 8d 84 00 00 + 0012a 8b 8d 84 00 00 00 mov ecx, DWORD PTR DecodeError$3[rbp] - 00119 e8 00 00 00 00 call xed_error_enum_t2str - 0011e 48 8b d0 mov rdx, rax - 00121 48 8d 0d 00 00 + 00130 e8 00 00 00 00 call xed_error_enum_t2str + 00135 48 8b d0 mov rdx, rax + 00138 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0CA@KDIENFLL@XedDecode?5failed?5with?5error?5?$CFs?6@ - 00128 e8 00 00 00 00 call printf + 0013f e8 00 00 00 00 call printf -; 478 : NcDeleteBlock(Block); +; 490 : NcDeleteBlock(Block); - 0012d 48 8b 8d 00 02 + 00144 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR Block$[rbp] - 00134 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 0014b e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock -; 479 : delete Link; +; 491 : delete Link; - 00139 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] - 0013d 48 89 85 a8 01 + 00150 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 00154 48 89 85 a8 01 00 00 mov QWORD PTR $T6[rbp], rax - 00144 48 83 bd a8 01 + 0015b 48 83 bd a8 01 00 00 00 cmp QWORD PTR $T6[rbp], 0 - 0014c 74 1a je SHORT $LN10@NcDisassem - 0014e ba 01 00 00 00 mov edx, 1 - 00153 48 8b 8d a8 01 + 00163 74 1a je SHORT $LN10@NcDisassem + 00165 ba 01 00 00 00 mov edx, 1 + 0016a 48 8b 8d a8 01 00 00 mov rcx, QWORD PTR $T6[rbp] - 0015a e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 0015f 48 89 85 d8 01 + 00171 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 00176 48 89 85 d8 01 00 00 mov QWORD PTR tv130[rbp], rax - 00166 eb 0b jmp SHORT $LN11@NcDisassem + 0017d eb 0b jmp SHORT $LN11@NcDisassem $LN10@NcDisassem: - 00168 48 c7 85 d8 01 + 0017f 48 c7 85 d8 01 00 00 00 00 00 00 mov QWORD PTR tv130[rbp], 0 $LN11@NcDisassem: -; 480 : return FALSE; +; 492 : return FALSE; - 00173 33 c0 xor eax, eax - 00175 e9 99 00 00 00 jmp $LN1@NcDisassem + 0018a 33 c0 xor eax, eax + 0018c e9 99 00 00 00 jmp $LN1@NcDisassem $LN4@NcDisassem: -; 481 : } -; 482 : Link->RawDataSize = XedDecodedInstGetLength(&Link->XedInstruction); - - 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]; +; 493 : } +; 494 : Link->RawDataSize = XedDecodedInstGetLength(&Link->XedInstruction); 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 + 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 + +; 495 : 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 00 00 mov QWORD PTR $T7[rbp], rax - 001a6 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] - 001aa 48 8b 8d c8 01 + 001bd 48 8b 45 48 mov rax, QWORD PTR Link$1[rbp] + 001c1 48 8b 8d c8 01 00 00 mov rcx, QWORD PTR $T7[rbp] - 001b1 48 89 48 20 mov QWORD PTR [rax+32], rcx - -; 484 : RtlCopyMemory(Link->RawData, (Buf + Offset), Link->RawDataSize); - - 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); - - 001dc 48 8b 55 48 mov rdx, QWORD PTR Link$1[rbp] - 001e0 48 8b 8d 00 02 + 001c8 48 89 48 20 mov QWORD PTR [rax+32], rcx + +; 496 : 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 + +; 497 : +; 498 : NcAppendToBlock(Block, Link); + + 001f3 48 8b 55 48 mov rdx, QWORD PTR Link$1[rbp] + 001f7 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR Block$[rbp] - 001e7 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 001fe e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock -; 487 : -; 488 : Offset += Link->RawDataSize; +; 499 : +; 500 : Offset += Link->RawDataSize; - 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 + 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 -; 489 : } +; 501 : } - 001fd e9 39 fe ff ff jmp $LN2@NcDisassem + 00214 e9 39 fe ff ff jmp $LN2@NcDisassem $LN3@NcDisassem: -; 490 : -; 491 : NcCreateLabels(Block); +; 502 : +; 503 : NcCreateLabels(Block); - 00202 48 8b 8d 00 02 + 00219 48 8b 8d 00 02 00 00 mov rcx, QWORD PTR Block$[rbp] - 00209 e8 00 00 00 00 call ?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCreateLabels + 00220 e8 00 00 00 00 call ?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCreateLabels -; 492 : -; 493 : return TRUE; +; 504 : +; 505 : return TRUE; - 0020e b8 01 00 00 00 mov eax, 1 + 00225 b8 01 00 00 00 mov eax, 1 $LN1@NcDisassem: -; 494 : } +; 506 : } - 00213 48 8d a5 e8 01 + 0022a 48 8d a5 e8 01 00 00 lea rsp, QWORD PTR [rbp+488] - 0021a 5f pop rdi - 0021b 5d pop rbp - 0021c c3 ret 0 + 00231 5f pop rdi + 00232 5d pop rbp + 00233 c3 ret 0 ?NcDisassemble@@YAHPEAU_NATIVE_CODE_BLOCK@@PEAXK@Z ENDP ; NcDisassemble _TEXT ENDS ; COMDAT text$x @@ -10254,7 +10252,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:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT T$9 = 8 @@ -10276,7 +10274,7 @@ __$ArrayPad$ = 1784 Block$ = 1824 ?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcFixRelJmps, COMDAT -; 385 : { +; 397 : { $LN21: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -10286,456 +10284,456 @@ $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 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 + 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 07 00 00 mov rcx, QWORD PTR [rsp+1880] - 0002d 48 8b 05 00 00 + 0002b 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00034 48 33 c5 xor rax, rbp - 00037 48 89 85 f8 06 + 00032 48 33 c5 xor rax, rbp + 00035 48 89 85 f8 06 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003e 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 00045 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003c 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00043 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 386 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next;) +; 398 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next;) - 0004a 48 8b 85 20 07 + 00048 48 8b 85 20 07 00 00 mov rax, QWORD PTR Block$[rbp] - 00051 48 8b 00 mov rax, QWORD PTR [rax] - 00054 48 89 45 08 mov QWORD PTR T$9[rbp], rax + 0004f 48 8b 00 mov rax, QWORD PTR [rax] + 00052 48 89 45 08 mov QWORD PTR T$9[rbp], rax $LN2@NcFixRelJm: - 00058 48 83 7d 08 00 cmp QWORD PTR T$9[rbp], 0 - 0005d 0f 84 1c 03 00 + 00056 48 83 7d 08 00 cmp QWORD PTR T$9[rbp], 0 + 0005b 0f 84 1c 03 00 00 je $LN3@NcFixRelJm - 00063 48 8b 85 20 07 + 00061 48 8b 85 20 07 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 00 je $LN3@NcFixRelJm -; 387 : { -; 388 : if (T->Flags & CODE_FLAG_IS_REL_JMP) +; 399 : { +; 400 : if (T->Flags & CODE_FLAG_IS_REL_JMP) - 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 + 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 00 je $LN7@NcFixRelJm -; 389 : { -; 390 : INT32 BranchDisp = 0; +; 401 : { +; 402 : INT32 BranchDisp = 0; - 0008d c7 45 24 00 00 + 0008b c7 45 24 00 00 00 00 mov DWORD PTR BranchDisp$10[rbp], 0 -; 391 : if (!NcGetDeltaToLabel(T, &BranchDisp)) +; 403 : if (!NcGetDeltaToLabel(T, &BranchDisp)) - 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 + 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 -; 392 : return FALSE; +; 404 : return FALSE; - 000a5 33 c0 xor eax, eax - 000a7 e9 d8 02 00 00 jmp $LN1@NcFixRelJm + 000a3 33 c0 xor eax, eax + 000a5 e9 d8 02 00 00 jmp $LN1@NcFixRelJm $LN8@NcFixRelJm: -; 393 : -; 394 : ULONG DispWidth = XedDecodedInstGetBranchDisplacementWidthBits(&T->XedInstruction); +; 405 : +; 406 : ULONG DispWidth = XedDecodedInstGetBranchDisplacementWidthBits(&T->XedInstruction); - 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 + 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 -; 395 : if (log2(abs(BranchDisp)) + 1 > DispWidth) +; 407 : if (log2(abs(BranchDisp)) + 1 > DispWidth) - 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 + 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 00 00 00 addsd xmm0, QWORD PTR __real@3ff0000000000000 - 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 + 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 00 jbe $LN9@NcFixRelJm -; 396 : { -; 397 : //duh oh -; 398 : if (DispWidth == 32) +; 408 : { +; 409 : //duh oh +; 410 : if (DispWidth == 32) - 000e8 83 7d 44 20 cmp DWORD PTR DispWidth$11[rbp], 32 ; 00000020H - 000ec 75 07 jne SHORT $LN11@NcFixRelJm + 000e6 83 7d 44 20 cmp DWORD PTR DispWidth$11[rbp], 32 ; 00000020H + 000ea 75 07 jne SHORT $LN11@NcFixRelJm -; 399 : return FALSE; +; 411 : return FALSE; - 000ee 33 c0 xor eax, eax - 000f0 e9 8f 02 00 00 jmp $LN1@NcFixRelJm + 000ec 33 c0 xor eax, eax + 000ee e9 8f 02 00 00 jmp $LN1@NcFixRelJm $LN11@NcFixRelJm: -; 400 : -; 401 : //Grow displacement width to required size -; 402 : DispWidth *= 2; +; 412 : +; 413 : //Grow displacement width to required size +; 414 : DispWidth *= 2; - 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 + 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 -; 403 : -; 404 : //Check again -; 405 : if (log2(abs(BranchDisp)) + 1 > DispWidth) +; 415 : +; 416 : //Check again +; 417 : if (log2(abs(BranchDisp)) + 1 > DispWidth) - 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 + 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 00 00 00 addsd xmm0, QWORD PTR __real@3ff0000000000000 - 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 + 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 -; 406 : { -; 407 : if (DispWidth == 32) +; 418 : { +; 419 : if (DispWidth == 32) - 00122 83 7d 44 20 cmp DWORD PTR DispWidth$11[rbp], 32 ; 00000020H - 00126 75 07 jne SHORT $LN13@NcFixRelJm + 00120 83 7d 44 20 cmp DWORD PTR DispWidth$11[rbp], 32 ; 00000020H + 00124 75 07 jne SHORT $LN13@NcFixRelJm -; 408 : return FALSE; +; 420 : return FALSE; - 00128 33 c0 xor eax, eax - 0012a e9 55 02 00 00 jmp $LN1@NcFixRelJm + 00126 33 c0 xor eax, eax + 00128 e9 55 02 00 00 jmp $LN1@NcFixRelJm $LN13@NcFixRelJm: -; 409 : -; 410 : //Grow once more if not already at 32 -; 411 : DispWidth *= 2; +; 421 : +; 422 : //Grow once more if not already at 32 +; 423 : DispWidth *= 2; - 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 + 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 $LN12@NcFixRelJm: -; 412 : } -; 413 : -; 414 : //Encode new instruction -; 415 : XED_STATE MachineState; -; 416 : MachineState.mmode = XED_MACHINE_MODE_LONG_64; +; 424 : } +; 425 : +; 426 : //Encode new instruction +; 427 : XED_STATE MachineState; +; 428 : MachineState.mmode = XED_MACHINE_MODE_LONG_64; - 00137 c7 45 68 01 00 + 00135 c7 45 68 01 00 00 00 mov DWORD PTR MachineState$12[rbp], 1 -; 417 : MachineState.stack_addr_width = XED_ADDRESS_WIDTH_64b; +; 429 : MachineState.stack_addr_width = XED_ADDRESS_WIDTH_64b; - 0013e c7 45 6c 08 00 + 0013c c7 45 6c 08 00 00 00 mov DWORD PTR MachineState$12[rbp+4], 8 -; 418 : XED_ENCODER_INSTRUCTION EncoderInstruction; -; 419 : XED_ENCODER_REQUEST EncoderRequest; -; 420 : UCHAR EncodeBuffer[15]; -; 421 : UINT ReturnedSize; -; 422 : XED_ICLASS_ENUM IClass = XedDecodedInstGetIClass(&T->XedInstruction); - - 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 +; 430 : XED_ENCODER_INSTRUCTION EncoderInstruction; +; 431 : XED_ENCODER_REQUEST EncoderRequest; +; 432 : UCHAR EncodeBuffer[15]; +; 433 : UINT ReturnedSize; +; 434 : 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 00 mov DWORD PTR IClass$17[rbp], eax -; 423 : -; 424 : //Do the encoding -; 425 : XedInst1(&EncoderInstruction, MachineState, IClass, DispWidth, XedRelBr(0, DispWidth)); +; 435 : +; 436 : //Do the encoding +; 437 : XedInst1(&EncoderInstruction, MachineState, IClass, DispWidth, XedRelBr(0, DispWidth)); - 0015b 44 8b 45 44 mov r8d, DWORD PTR DispWidth$11[rbp] - 0015f 33 d2 xor edx, edx - 00161 48 8d 8d 28 06 + 00159 44 8b 45 44 mov r8d, DWORD PTR DispWidth$11[rbp] + 0015d 33 d2 xor edx, edx + 0015f 48 8d 8d 28 06 00 00 lea rcx, QWORD PTR $T19[rbp] - 00168 e8 00 00 00 00 call xed_relbr - 0016d 48 8d 8d d8 05 + 00166 e8 00 00 00 00 call xed_relbr + 0016b 48 8d 8d d8 05 00 00 lea rcx, QWORD PTR $T18[rbp] - 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 + 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 00 00 lea rax, QWORD PTR $T22[rbp] - 00188 48 8d 8d d8 05 + 00186 48 8d 8d d8 05 00 00 lea rcx, QWORD PTR $T18[rbp] - 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 + 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 00 00 lea rax, QWORD PTR $T22[rbp] - 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 + 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 00 00 mov r8d, DWORD PTR IClass$17[rbp] - 001b3 48 8b 55 68 mov rdx, QWORD PTR MachineState$12[rbp] - 001b7 48 8d 8d 90 00 + 001b1 48 8b 55 68 mov rdx, QWORD PTR MachineState$12[rbp] + 001b5 48 8d 8d 90 00 00 00 lea rcx, QWORD PTR EncoderInstruction$13[rbp] - 001be e8 00 00 00 00 call xed_inst1 + 001bc e8 00 00 00 00 call xed_inst1 -; 426 : XedEncoderRequestZeroSetMode(&EncoderRequest, &MachineState); +; 438 : XedEncoderRequestZeroSetMode(&EncoderRequest, &MachineState); - 001c3 48 8d 55 68 lea rdx, QWORD PTR MachineState$12[rbp] - 001c7 48 8d 8d 50 02 + 001c1 48 8d 55 68 lea rdx, QWORD PTR MachineState$12[rbp] + 001c5 48 8d 8d 50 02 00 00 lea rcx, QWORD PTR EncoderRequest$14[rbp] - 001ce e8 00 00 00 00 call xed_encoder_request_zero_set_mode + 001cc e8 00 00 00 00 call xed_encoder_request_zero_set_mode -; 427 : if (!XedConvertToEncoderRequest(&EncoderRequest, &EncoderInstruction)) +; 439 : if (!XedConvertToEncoderRequest(&EncoderRequest, &EncoderInstruction)) - 001d3 48 8d 95 90 00 + 001d1 48 8d 95 90 00 00 00 lea rdx, QWORD PTR EncoderInstruction$13[rbp] - 001da 48 8d 8d 50 02 + 001d8 48 8d 8d 50 02 00 00 lea rcx, QWORD PTR EncoderRequest$14[rbp] - 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 + 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 -; 428 : return FALSE; +; 440 : return FALSE; - 001ea 33 c0 xor eax, eax - 001ec e9 93 01 00 00 jmp $LN1@NcFixRelJm + 001e8 33 c0 xor eax, eax + 001ea e9 93 01 00 00 jmp $LN1@NcFixRelJm $LN14@NcFixRelJm: -; 429 : if (XED_ERROR_NONE != XedEncode(&EncoderRequest, EncodeBuffer, 15, &ReturnedSize)) +; 441 : if (XED_ERROR_NONE != XedEncode(&EncoderRequest, EncodeBuffer, 15, &ReturnedSize)) - 001f1 4c 8d 8d 54 03 + 001ef 4c 8d 8d 54 03 00 00 lea r9, QWORD PTR ReturnedSize$16[rbp] - 001f8 41 b8 0f 00 00 + 001f6 41 b8 0f 00 00 00 mov r8d, 15 - 001fe 48 8d 95 28 03 + 001fc 48 8d 95 28 03 00 00 lea rdx, QWORD PTR EncodeBuffer$15[rbp] - 00205 48 8d 8d 50 02 + 00203 48 8d 8d 50 02 00 00 lea rcx, QWORD PTR EncoderRequest$14[rbp] - 0020c e8 00 00 00 00 call xed_encode - 00211 85 c0 test eax, eax - 00213 74 07 je SHORT $LN15@NcFixRelJm + 0020a e8 00 00 00 00 call xed_encode + 0020f 85 c0 test eax, eax + 00211 74 07 je SHORT $LN15@NcFixRelJm -; 430 : return FALSE; +; 442 : return FALSE; - 00215 33 c0 xor eax, eax - 00217 e9 68 01 00 00 jmp $LN1@NcFixRelJm + 00213 33 c0 xor eax, eax + 00215 e9 68 01 00 00 jmp $LN1@NcFixRelJm $LN15@NcFixRelJm: -; 431 : -; 432 : //fixup T->RawData -; 433 : delete[] T->RawData; +; 443 : +; 444 : //fixup T->RawData +; 445 : delete[] T->RawData; - 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 + 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 00 00 mov QWORD PTR $T20[rbp], rax - 0022b 48 8b 8d 78 06 + 00229 48 8b 8d 78 06 00 00 mov rcx, QWORD PTR $T20[rbp] - 00232 e8 00 00 00 00 call ??_V@YAXPEAX@Z ; operator delete[] + 00230 e8 00 00 00 00 call ??_V@YAXPEAX@Z ; operator delete[] -; 434 : T->RawDataSize = ReturnedSize; +; 446 : T->RawDataSize = ReturnedSize; - 00237 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 0023b 8b 8d 54 03 00 + 00235 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 00239 8b 8d 54 03 00 00 mov ecx, DWORD PTR ReturnedSize$16[rbp] - 00241 89 48 28 mov DWORD PTR [rax+40], ecx + 0023f 89 48 28 mov DWORD PTR [rax+40], ecx -; 435 : T->RawData = new UCHAR[ReturnedSize]; +; 447 : T->RawData = new UCHAR[ReturnedSize]; - 00244 8b 85 54 03 00 + 00242 8b 85 54 03 00 00 mov eax, DWORD PTR ReturnedSize$16[rbp] - 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 + 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 00 00 mov QWORD PTR $T21[rbp], rax - 00258 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] - 0025c 48 8b 8d 98 06 + 00256 48 8b 45 08 mov rax, QWORD PTR T$9[rbp] + 0025a 48 8b 8d 98 06 00 00 mov rcx, QWORD PTR $T21[rbp] - 00263 48 89 48 20 mov QWORD PTR [rax+32], rcx + 00261 48 89 48 20 mov QWORD PTR [rax+32], rcx -; 436 : RtlCopyMemory(T->RawData, EncodeBuffer, ReturnedSize); +; 448 : RtlCopyMemory(T->RawData, EncodeBuffer, ReturnedSize); - 00267 8b 85 54 03 00 + 00265 8b 85 54 03 00 00 mov eax, DWORD PTR ReturnedSize$16[rbp] - 0026d 44 8b c0 mov r8d, eax - 00270 48 8d 95 28 03 + 0026b 44 8b c0 mov r8d, eax + 0026e 48 8d 95 28 03 00 00 lea rdx, QWORD PTR EncodeBuffer$15[rbp] - 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); - - 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)) - - 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; - - 002bc 33 c0 xor eax, eax - 002be e9 c1 00 00 00 jmp $LN1@NcFixRelJm + 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 + +; 449 : +; 450 : //Decode instruction so its proper and all that +; 451 : 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 + +; 452 : 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 + +; 453 : return FALSE; + + 002ba 33 c0 xor eax, eax + 002bc 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; +; 454 : +; 455 : //Go back to the start and loop through all labels again because now this instruction is larger :)))) +; 456 : T = Block->Start; - 002c3 48 8b 85 20 07 + 002c1 48 8b 85 20 07 00 00 mov rax, QWORD PTR Block$[rbp] - 002ca 48 8b 00 mov rax, QWORD PTR [rax] - 002cd 48 89 45 08 mov QWORD PTR T$9[rbp], rax + 002c8 48 8b 00 mov rax, QWORD PTR [rax] + 002cb 48 89 45 08 mov QWORD PTR T$9[rbp], rax -; 445 : continue; +; 457 : continue; - 002d1 e9 82 fd ff ff jmp $LN2@NcFixRelJm + 002cf e9 82 fd ff ff jmp $LN2@NcFixRelJm -; 446 : } +; 458 : } - 002d6 e9 94 00 00 00 jmp $LN10@NcFixRelJm + 002d4 e9 94 00 00 00 jmp $LN10@NcFixRelJm $LN9@NcFixRelJm: -; 447 : else -; 448 : { -; 449 : DispWidth = XedDecodedInstGetBranchDisplacementWidth(&T->XedInstruction); +; 459 : else +; 460 : { +; 461 : DispWidth = XedDecodedInstGetBranchDisplacementWidth(&T->XedInstruction); - 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 + 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 -; 450 : switch (DispWidth) +; 462 : switch (DispWidth) - 002ee 8b 45 44 mov eax, DWORD PTR DispWidth$11[rbp] - 002f1 89 85 f4 06 00 + 002ec 8b 45 44 mov eax, DWORD PTR DispWidth$11[rbp] + 002ef 89 85 f4 06 00 00 mov DWORD PTR tv184[rbp], eax - 002f7 83 bd f4 06 00 + 002f5 83 bd f4 06 00 00 01 cmp DWORD PTR tv184[rbp], 1 - 002fe 74 14 je SHORT $LN17@NcFixRelJm - 00300 83 bd f4 06 00 + 002fc 74 14 je SHORT $LN17@NcFixRelJm + 002fe 83 bd f4 06 00 00 02 cmp DWORD PTR tv184[rbp], 2 - 00307 74 2a je SHORT $LN18@NcFixRelJm - 00309 83 bd f4 06 00 + 00305 74 2a je SHORT $LN18@NcFixRelJm + 00307 83 bd f4 06 00 00 04 cmp DWORD PTR tv184[rbp], 4 - 00310 74 41 je SHORT $LN19@NcFixRelJm - 00312 eb 5b jmp SHORT $LN5@NcFixRelJm + 0030e 74 41 je SHORT $LN19@NcFixRelJm + 00310 eb 5b jmp SHORT $LN5@NcFixRelJm $LN17@NcFixRelJm: -; 451 : { -; 452 : case 1: *(PINT8)&T->RawData[T->RawDataSize - DispWidth] = (INT8)BranchDisp; break; - - 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 +; 463 : { +; 464 : 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 $LN18@NcFixRelJm: -; 453 : case 2: *(PINT16)&T->RawData[T->RawDataSize - DispWidth] = (INT16)BranchDisp; break; - - 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 +; 465 : 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 $LN19@NcFixRelJm: -; 454 : case 4: *(PINT32)&T->RawData[T->RawDataSize - DispWidth] = (INT32)BranchDisp; break; - - 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 +; 466 : 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 $LN5@NcFixRelJm: $LN10@NcFixRelJm: $LN7@NcFixRelJm: -; 455 : } -; 456 : } -; 457 : } -; 458 : -; 459 : T = T->Next; +; 467 : } +; 468 : } +; 469 : } +; 470 : +; 471 : T = T->Next; - 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 + 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 -; 460 : } +; 472 : } - 0037a e9 d9 fc ff ff jmp $LN2@NcFixRelJm + 00378 e9 d9 fc ff ff jmp $LN2@NcFixRelJm $LN3@NcFixRelJm: -; 461 : return TRUE; +; 473 : return TRUE; - 0037f b8 01 00 00 00 mov eax, 1 + 0037d b8 01 00 00 00 mov eax, 1 $LN1@NcFixRelJm: -; 462 : } +; 474 : } - 00384 48 8b f8 mov rdi, rax - 00387 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 0038b 48 8d 15 00 00 + 00382 48 8b f8 mov rdi, rax + 00385 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00389 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData - 00392 e8 00 00 00 00 call _RTC_CheckStackVars - 00397 48 8b c7 mov rax, rdi - 0039a 48 8b 8d f8 06 + 00390 e8 00 00 00 00 call _RTC_CheckStackVars + 00395 48 8b c7 mov rax, rdi + 00398 48 8b 8d f8 06 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 003a1 48 33 cd xor rcx, rbp - 003a4 e8 00 00 00 00 call __security_check_cookie - 003a9 48 8d a5 00 07 + 0039f 48 33 cd xor rcx, rbp + 003a2 e8 00 00 00 00 call __security_check_cookie + 003a7 48 8d a5 00 07 00 00 lea rsp, QWORD PTR [rbp+1792] - 003b0 5f pop rdi - 003b1 5e pop rsi - 003b2 5d pop rbp - 003b3 c3 ret 0 + 003ae 5f pop rdi + 003af 5e pop rsi + 003b0 5d pop rbp + 003b1 c3 ret 0 ?NcFixRelJmps@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcFixRelJmps _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z _TEXT SEGMENT Delta$ = 4 @@ -10745,7 +10743,7 @@ Link$ = 320 DeltaOut$ = 328 ?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z PROC ; NcGetDeltaToLabel, COMDAT -; 349 : { +; 361 : { $LN13: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -10755,183 +10753,189 @@ $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 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; - - 00024 c7 45 04 00 00 + 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 + +; 362 : INT32 Delta = 0; + + 0003b 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) +; 363 : //First checking backwards because I feel like thats the direction most jmps are in +; 364 : for (PNATIVE_CODE_LINK T = Link; T; T = T->Prev) - 0002b 48 8b 85 40 01 + 00042 48 8b 85 40 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00032 48 89 45 28 mov QWORD PTR T$1[rbp], rax - 00036 eb 0c jmp SHORT $LN4@NcGetDelta + 00049 48 89 45 28 mov QWORD PTR T$1[rbp], rax + 0004d eb 0c jmp SHORT $LN4@NcGetDelta $LN2@NcGetDelta: - 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 + 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 $LN4@NcGetDelta: - 00044 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 - 00049 74 4c je SHORT $LN3@NcGetDelta + 0005b 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 + 00060 74 4c je SHORT $LN3@NcGetDelta -; 353 : { -; 354 : if (T->Flags & CODE_FLAG_IS_LABEL) +; 365 : { +; 366 : if (T->Flags & CODE_FLAG_IS_LABEL) - 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 + 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 -; 355 : { -; 356 : if (T->Label == Link->Label) +; 367 : { +; 368 : if (T->Label == Link->Label) - 00059 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] - 0005d 48 8b 8d 40 01 + 00070 48 8b 45 28 mov rax, QWORD PTR T$1[rbp] + 00074 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 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 + 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 -; 357 : { -; 358 : *DeltaOut = Delta; +; 369 : { +; 370 : *DeltaOut = Delta; - 0006c 48 8b 85 48 01 + 00083 48 8b 85 48 01 00 00 mov rax, QWORD PTR DeltaOut$[rbp] - 00073 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] - 00076 89 08 mov DWORD PTR [rax], ecx + 0008a 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] + 0008d 89 08 mov DWORD PTR [rax], ecx -; 359 : return TRUE; +; 371 : return TRUE; - 00078 b8 01 00 00 00 mov eax, 1 - 0007d e9 89 00 00 00 jmp $LN1@NcGetDelta + 0008f b8 01 00 00 00 mov eax, 1 + 00094 e9 89 00 00 00 jmp $LN1@NcGetDelta $LN9@NcGetDelta: -; 360 : } -; 361 : continue; +; 372 : } +; 373 : continue; - 00082 eb b4 jmp SHORT $LN2@NcGetDelta + 00099 eb b4 jmp SHORT $LN2@NcGetDelta $LN8@NcGetDelta: -; 362 : } -; 363 : Delta -= T->RawDataSize; +; 374 : } +; 375 : Delta -= T->RawDataSize; - 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 + 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 -; 364 : } +; 376 : } - 00095 eb a1 jmp SHORT $LN2@NcGetDelta + 000ac eb a1 jmp SHORT $LN2@NcGetDelta $LN3@NcGetDelta: -; 365 : -; 366 : //Now check forwards -; 367 : Delta = 0; +; 377 : +; 378 : //Now check forwards +; 379 : Delta = 0; - 00097 c7 45 04 00 00 + 000ae 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) +; 380 : for (PNATIVE_CODE_LINK T = Link->Next; T; T = T->Next) - 0009e 48 8b 85 40 01 + 000b5 48 8b 85 40 01 00 00 mov rax, QWORD PTR Link$[rbp] - 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 + 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 $LN5@NcGetDelta: - 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 + 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 $LN7@NcGetDelta: - 000b9 48 83 7d 48 00 cmp QWORD PTR T$2[rbp], 0 - 000be 74 49 je SHORT $LN6@NcGetDelta + 000d0 48 83 7d 48 00 cmp QWORD PTR T$2[rbp], 0 + 000d5 74 49 je SHORT $LN6@NcGetDelta -; 369 : { -; 370 : if (T->Flags & CODE_FLAG_IS_LABEL) +; 381 : { +; 382 : if (T->Flags & CODE_FLAG_IS_LABEL) - 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 + 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 -; 371 : { -; 372 : if (T->Label == Link->Label) +; 383 : { +; 384 : if (T->Label == Link->Label) - 000ce 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] - 000d2 48 8b 8d 40 01 + 000e5 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] + 000e9 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 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 + 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 -; 373 : { -; 374 : *DeltaOut = Delta; +; 385 : { +; 386 : *DeltaOut = Delta; - 000e1 48 8b 85 48 01 + 000f8 48 8b 85 48 01 00 00 mov rax, QWORD PTR DeltaOut$[rbp] - 000e8 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] - 000eb 89 08 mov DWORD PTR [rax], ecx + 000ff 8b 4d 04 mov ecx, DWORD PTR Delta$[rbp] + 00102 89 08 mov DWORD PTR [rax], ecx -; 375 : return TRUE; +; 387 : return TRUE; - 000ed b8 01 00 00 00 mov eax, 1 - 000f2 eb 17 jmp SHORT $LN1@NcGetDelta + 00104 b8 01 00 00 00 mov eax, 1 + 00109 eb 17 jmp SHORT $LN1@NcGetDelta $LN11@NcGetDelta: -; 376 : } -; 377 : continue; +; 388 : } +; 389 : continue; - 000f4 eb b8 jmp SHORT $LN5@NcGetDelta + 0010b eb b8 jmp SHORT $LN5@NcGetDelta $LN10@NcGetDelta: -; 378 : } -; 379 : Delta += T->RawDataSize; +; 390 : } +; 391 : Delta += T->RawDataSize; - 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 + 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 -; 380 : } +; 392 : } - 00107 eb a5 jmp SHORT $LN5@NcGetDelta + 0011e eb a5 jmp SHORT $LN5@NcGetDelta $LN6@NcGetDelta: -; 381 : return FALSE; +; 393 : return FALSE; - 00109 33 c0 xor eax, eax + 00120 33 c0 xor eax, eax $LN1@NcGetDelta: -; 382 : } +; 394 : } - 0010b 48 8d a5 28 01 + 00122 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 + 00129 5f pop rdi + 0012a 5d pop rbp + 0012b c3 ret 0 ?NcGetDeltaToLabel@@YAHPEAU_NATIVE_CODE_LINK@@PEAH@Z ENDP ; NcGetDeltaToLabel _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z _TEXT SEGMENT Block$ = 224 BlockCopy$ = 232 ?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z PROC ; NcDeepCopyBlock, COMDAT -; 344 : { +; 356 : { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -10941,33 +10945,39 @@ $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 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); - - 00024 4c 8b 85 e8 00 + 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 + +; 357 : return NcDeepCopyPartialBlock(Block->Start, Block->End, BlockCopy); + + 0003b 4c 8b 85 e8 00 00 00 mov r8, QWORD PTR BlockCopy$[rbp] - 0002b 48 8b 85 e0 00 + 00042 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 00032 48 8b 50 08 mov rdx, QWORD PTR [rax+8] - 00036 48 8b 85 e0 00 + 00049 48 8b 50 08 mov rdx, QWORD PTR [rax+8] + 0004d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 -; 346 : } +; 358 : } - 00045 48 8d a5 c8 00 + 0005c 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004c 5f pop rdi - 0004d 5d pop rbp - 0004e c3 ret 0 + 00063 5f pop rdi + 00064 5d pop rbp + 00065 c3 ret 0 ?NcDeepCopyBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@0@Z ENDP ; NcDeepCopyBlock _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT $L0$4 = 8 @@ -10983,7 +10993,7 @@ End$ = 440 Block$ = 448 ?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcDeepCopyPartialBlock, COMDAT -; 319 : { +; 331 : { $LN12: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -10994,206 +11004,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 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 + 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 01 00 00 mov rcx, QWORD PTR [rsp+472] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 80 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 80 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 320 : if (!Start || !End || !Start->Block || Start->Block != End->Block || !Block) +; 332 : if (!Start || !End || !Start->Block || Start->Block != End->Block || !Block) - 00053 48 83 bd b0 01 + 00051 48 83 bd b0 01 00 00 00 cmp QWORD PTR Start$[rbp], 0 - 0005b 74 3a je SHORT $LN9@NcDeepCopy - 0005d 48 83 bd b8 01 + 00059 74 3a je SHORT $LN9@NcDeepCopy + 0005b 48 83 bd b8 01 00 00 00 cmp QWORD PTR End$[rbp], 0 - 00065 74 30 je SHORT $LN9@NcDeepCopy - 00067 48 8b 85 b0 01 + 00063 74 30 je SHORT $LN9@NcDeepCopy + 00065 48 8b 85 b0 01 00 00 mov rax, QWORD PTR Start$[rbp] - 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 + 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 00 00 mov rax, QWORD PTR Start$[rbp] - 0007c 48 8b 8d b8 01 + 0007a 48 8b 8d b8 01 00 00 mov rcx, QWORD PTR End$[rbp] - 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 + 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 00 00 00 cmp QWORD PTR Block$[rbp], 0 - 00095 75 07 jne SHORT $LN8@NcDeepCopy + 00093 75 07 jne SHORT $LN8@NcDeepCopy $LN9@NcDeepCopy: -; 321 : return FALSE; +; 333 : return FALSE; - 00097 33 c0 xor eax, eax - 00099 e9 27 01 00 00 jmp $LN1@NcDeepCopy + 00095 33 c0 xor eax, eax + 00097 e9 27 01 00 00 jmp $LN1@NcDeepCopy $LN8@NcDeepCopy: -; 322 : -; 323 : Block->LabelIds.clear(); +; 334 : +; 335 : Block->LabelIds.clear(); - 0009e 48 8b 85 c0 01 + 0009c 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 -; 324 : Block->Start = Block->End = NULL; +; 336 : Block->Start = Block->End = NULL; - 000b1 48 8b 85 c0 01 + 000af 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Block$[rbp] - 000b8 48 c7 40 08 00 + 000b6 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 000c0 48 8b 85 c0 01 + 000be 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Block$[rbp] - 000c7 48 c7 00 00 00 + 000c5 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 -; 325 : -; 326 : for (ULONG L : Start->Block->LabelIds) +; 337 : +; 338 : for (ULONG L : Start->Block->LabelIds) - 000ce 48 8b 85 b0 01 + 000cc 48 8b 85 b0 01 00 00 mov rax, QWORD PTR Start$[rbp] - 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 + 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 $LN2@NcDeepCopy: - 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 + 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 $LN4@NcDeepCopy: - 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 + 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 -; 327 : Block->LabelIds.push_back(L); +; 339 : Block->LabelIds.push_back(L); - 0011c 48 8b 85 c0 01 + 0011a 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00123 48 83 c0 10 add rax, 16 - 00127 48 89 85 78 01 + 00121 48 83 c0 10 add rax, 16 + 00125 48 89 85 78 01 00 00 mov QWORD PTR tv88[rbp], rax - 0012e 48 8d 55 64 lea rdx, QWORD PTR L$7[rbp] - 00132 48 8b 8d 78 01 + 0012c 48 8d 55 64 lea rdx, QWORD PTR L$7[rbp] + 00130 48 8b 8d 78 01 00 00 mov rcx, QWORD PTR tv88[rbp] - 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 + 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 $LN3@NcDeepCopy: -; 328 : -; 329 : for (PNATIVE_CODE_LINK CurLink = Start; CurLink && CurLink != End->Next; CurLink = CurLink->Next) +; 340 : +; 341 : for (PNATIVE_CODE_LINK CurLink = Start; CurLink && CurLink != End->Next; CurLink = CurLink->Next) - 00140 48 8b 85 b0 01 + 0013e 48 8b 85 b0 01 00 00 mov rax, QWORD PTR Start$[rbp] - 00147 48 89 85 88 00 + 00145 48 89 85 88 00 00 00 mov QWORD PTR CurLink$8[rbp], rax - 0014e eb 11 jmp SHORT $LN7@NcDeepCopy + 0014c eb 11 jmp SHORT $LN7@NcDeepCopy $LN5@NcDeepCopy: - 00150 48 8b 85 88 00 + 0014e 48 8b 85 88 00 00 00 mov rax, QWORD PTR CurLink$8[rbp] - 00157 48 8b 00 mov rax, QWORD PTR [rax] - 0015a 48 89 85 88 00 + 00155 48 8b 00 mov rax, QWORD PTR [rax] + 00158 48 89 85 88 00 00 00 mov QWORD PTR CurLink$8[rbp], rax $LN7@NcDeepCopy: - 00161 48 83 bd 88 00 + 0015f 48 83 bd 88 00 00 00 00 cmp QWORD PTR CurLink$8[rbp], 0 - 00169 74 55 je SHORT $LN6@NcDeepCopy - 0016b 48 8b 85 b8 01 + 00167 74 55 je SHORT $LN6@NcDeepCopy + 00169 48 8b 85 b8 01 00 00 mov rax, QWORD PTR End$[rbp] - 00172 48 8b 00 mov rax, QWORD PTR [rax] - 00175 48 39 85 88 00 + 00170 48 8b 00 mov rax, QWORD PTR [rax] + 00173 48 39 85 88 00 00 00 cmp QWORD PTR CurLink$8[rbp], rax - 0017c 74 42 je SHORT $LN6@NcDeepCopy + 0017a 74 42 je SHORT $LN6@NcDeepCopy -; 330 : { -; 331 : PNATIVE_CODE_LINK Temp = NcDeepCopyLink(CurLink); +; 342 : { +; 343 : PNATIVE_CODE_LINK Temp = NcDeepCopyLink(CurLink); - 0017e 48 8b 8d 88 00 + 0017c 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR CurLink$8[rbp] - 00185 e8 00 00 00 00 call ?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z ; NcDeepCopyLink - 0018a 48 89 85 a8 00 + 00183 e8 00 00 00 00 call ?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z ; NcDeepCopyLink + 00188 48 89 85 a8 00 00 00 mov QWORD PTR Temp$9[rbp], rax -; 332 : if (!Temp) +; 344 : if (!Temp) - 00191 48 83 bd a8 00 + 0018f 48 83 bd a8 00 00 00 00 cmp QWORD PTR Temp$9[rbp], 0 - 00199 75 10 jne SHORT $LN10@NcDeepCopy + 00197 75 10 jne SHORT $LN10@NcDeepCopy -; 333 : { -; 334 : NcDeleteBlock(Block); +; 345 : { +; 346 : NcDeleteBlock(Block); - 0019b 48 8b 8d c0 01 + 00199 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 001a2 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock + 001a0 e8 00 00 00 00 call ?NcDeleteBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@@Z ; NcDeleteBlock -; 335 : return FALSE; +; 347 : return FALSE; - 001a7 33 c0 xor eax, eax - 001a9 eb 1a jmp SHORT $LN1@NcDeepCopy + 001a5 33 c0 xor eax, eax + 001a7 eb 1a jmp SHORT $LN1@NcDeepCopy $LN10@NcDeepCopy: -; 336 : } -; 337 : NcAppendToBlock(Block, Temp); +; 348 : } +; 349 : NcAppendToBlock(Block, Temp); - 001ab 48 8b 95 a8 00 + 001a9 48 8b 95 a8 00 00 00 mov rdx, QWORD PTR Temp$9[rbp] - 001b2 48 8b 8d c0 01 + 001b0 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 001b9 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 001b7 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock -; 338 : } +; 350 : } - 001be eb 90 jmp SHORT $LN5@NcDeepCopy + 001bc eb 90 jmp SHORT $LN5@NcDeepCopy $LN6@NcDeepCopy: -; 339 : -; 340 : return TRUE; +; 351 : +; 352 : return TRUE; - 001c0 b8 01 00 00 00 mov eax, 1 + 001be b8 01 00 00 00 mov eax, 1 $LN1@NcDeepCopy: -; 341 : } +; 353 : } - 001c5 48 8b f8 mov rdi, rax - 001c8 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 001cc 48 8d 15 00 00 + 001c3 48 8b f8 mov rdi, rax + 001c6 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 001ca 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?NcDeepCopyPartialBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData - 001d3 e8 00 00 00 00 call _RTC_CheckStackVars - 001d8 48 8b c7 mov rax, rdi - 001db 48 8b 8d 80 01 + 001d1 e8 00 00 00 00 call _RTC_CheckStackVars + 001d6 48 8b c7 mov rax, rdi + 001d9 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 001e2 48 33 cd xor rcx, rbp - 001e5 e8 00 00 00 00 call __security_check_cookie - 001ea 48 8d a5 98 01 + 001e0 48 33 cd xor rcx, rbp + 001e3 e8 00 00 00 00 call __security_check_cookie + 001e8 48 8d a5 98 01 00 00 lea rsp, QWORD PTR [rbp+408] - 001f1 5f pop rdi - 001f2 5d pop rbp - 001f3 c3 ret 0 + 001ef 5f pop rdi + 001f0 5d pop rbp + 001f1 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:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z _TEXT SEGMENT NewLink$1 = 8 @@ -11211,7 +11221,7 @@ tv81 = 408 Link$ = 448 ?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z PROC ; NcDeepCopyLink, COMDAT -; 298 : { +; 310 : { $LN14: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -11220,186 +11230,192 @@ $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 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) - - 0001f 48 8b 85 c0 01 + 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 + +; 311 : if (Link->Flags & CODE_FLAG_IS_LABEL) + + 00036 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Link$[rbp] - 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 + 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 -; 300 : { -; 301 : return new NATIVE_CODE_LINK(Link->Label, NULL); +; 312 : { +; 313 : return new NATIVE_CODE_LINK(Link->Label, NULL); - 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 + 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 00 00 mov QWORD PTR $T4[rbp], rax - 00041 48 83 bd 28 01 + 00058 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T4[rbp], 0 - 00049 74 22 je SHORT $LN6@NcDeepCopy - 0004b 45 33 c0 xor r8d, r8d - 0004e 48 8b 85 c0 01 + 00060 74 22 je SHORT $LN6@NcDeepCopy + 00062 45 33 c0 xor r8d, r8d + 00065 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Link$[rbp] - 00055 8b 50 1c mov edx, DWORD PTR [rax+28] - 00058 48 8b 8d 28 01 + 0006c 8b 50 1c mov edx, DWORD PTR [rax+28] + 0006f 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR $T4[rbp] - 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 + 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 00 00 mov QWORD PTR tv81[rbp], rax - 0006b eb 0b jmp SHORT $LN7@NcDeepCopy + 00082 eb 0b jmp SHORT $LN7@NcDeepCopy $LN6@NcDeepCopy: - 0006d 48 c7 85 98 01 + 00084 48 c7 85 98 01 00 00 00 00 00 00 mov QWORD PTR tv81[rbp], 0 $LN7@NcDeepCopy: - 00078 48 8b 85 98 01 + 0008f 48 8b 85 98 01 00 00 mov rax, QWORD PTR tv81[rbp] - 0007f 48 89 85 08 01 + 00096 48 89 85 08 01 00 00 mov QWORD PTR $T3[rbp], rax - 00086 48 8b 85 08 01 + 0009d 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T3[rbp] - 0008d e9 3c 01 00 00 jmp $LN1@NcDeepCopy + 000a4 e9 3c 01 00 00 jmp $LN1@NcDeepCopy -; 302 : } +; 314 : } - 00092 e9 37 01 00 00 jmp $LN1@NcDeepCopy + 000a9 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); +; 315 : else +; 316 : { +; 317 : PNATIVE_CODE_LINK NewLink = new NATIVE_CODE_LINK(Link->Flags, Link->RawData, Link->RawDataSize); - 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 + 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 00 00 mov QWORD PTR $T6[rbp], rax - 000a8 48 83 bd 68 01 + 000bf 48 83 bd 68 01 00 00 00 cmp QWORD PTR $T6[rbp], 0 - 000b0 74 3d je SHORT $LN8@NcDeepCopy - 000b2 c7 44 24 20 00 + 000c7 74 3d je SHORT $LN8@NcDeepCopy + 000c9 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 000ba 48 8b 85 c0 01 + 000d1 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000c1 44 8b 48 28 mov r9d, DWORD PTR [rax+40] - 000c5 48 8b 85 c0 01 + 000d8 44 8b 48 28 mov r9d, DWORD PTR [rax+40] + 000dc 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000cc 4c 8b 40 20 mov r8, QWORD PTR [rax+32] - 000d0 48 8b 85 c0 01 + 000e3 4c 8b 40 20 mov r8, QWORD PTR [rax+32] + 000e7 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000d7 8b 50 18 mov edx, DWORD PTR [rax+24] - 000da 48 8b 8d 68 01 + 000ee 8b 50 18 mov edx, DWORD PTR [rax+24] + 000f1 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR $T6[rbp] - 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 + 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 00 00 mov QWORD PTR tv131[rbp], rax - 000ed eb 0b jmp SHORT $LN9@NcDeepCopy + 00104 eb 0b jmp SHORT $LN9@NcDeepCopy $LN8@NcDeepCopy: - 000ef 48 c7 85 98 01 + 00106 48 c7 85 98 01 00 00 00 00 00 00 mov QWORD PTR tv131[rbp], 0 $LN9@NcDeepCopy: - 000fa 48 8b 85 98 01 + 00111 48 8b 85 98 01 00 00 mov rax, QWORD PTR tv131[rbp] - 00101 48 89 85 48 01 + 00118 48 89 85 48 01 00 00 mov QWORD PTR $T5[rbp], rax - 00108 48 8b 85 48 01 + 0011f 48 8b 85 48 01 00 00 mov rax, QWORD PTR $T5[rbp] - 0010f 48 89 45 08 mov QWORD PTR NewLink$1[rbp], rax + 00126 48 89 45 08 mov QWORD PTR NewLink$1[rbp], rax -; 306 : NewLink->Label = Link->Label; +; 318 : NewLink->Label = Link->Label; - 00113 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] - 00117 48 8b 8d c0 01 + 0012a 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] + 0012e 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 0011e 8b 49 1c mov ecx, DWORD PTR [rcx+28] - 00121 89 48 1c mov DWORD PTR [rax+28], ecx + 00135 8b 49 1c mov ecx, DWORD PTR [rcx+28] + 00138 89 48 1c mov DWORD PTR [rax+28], ecx -; 307 : XED_ERROR_ENUM DecodeError = XedDecode(&NewLink->XedInstruction, Link->RawData, Link->RawDataSize); +; 319 : XED_ERROR_ENUM DecodeError = XedDecode(&NewLink->XedInstruction, Link->RawData, Link->RawDataSize); - 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 + 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 00 00 mov rcx, QWORD PTR Link$[rbp] - 00133 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 00137 48 8b 8d c0 01 + 0014a 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 0014e 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 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 + 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 -; 308 : if (DecodeError != XED_ERROR_NONE) +; 320 : if (DecodeError != XED_ERROR_NONE) - 0014d 83 7d 24 00 cmp DWORD PTR DecodeError$2[rbp], 0 - 00151 74 77 je SHORT $LN4@NcDeepCopy + 00164 83 7d 24 00 cmp DWORD PTR DecodeError$2[rbp], 0 + 00168 74 77 je SHORT $LN4@NcDeepCopy -; 309 : { -; 310 : printf("XedDecode failed in NcDeepCopyLink: %s %u\n", XedErrorEnumToString(DecodeError), Link->RawDataSize); +; 321 : { +; 322 : printf("XedDecode failed in NcDeepCopyLink: %s %u\n", XedErrorEnumToString(DecodeError), Link->RawDataSize); - 00153 48 8b 85 c0 01 + 0016a 48 8b 85 c0 01 00 00 mov rax, QWORD PTR Link$[rbp] - 0015a 8b 40 28 mov eax, DWORD PTR [rax+40] - 0015d 89 85 94 01 00 + 00171 8b 40 28 mov eax, DWORD PTR [rax+40] + 00174 89 85 94 01 00 00 mov DWORD PTR tv151[rbp], eax - 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 + 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 00 00 mov QWORD PTR tv149[rbp], rax - 00172 44 8b 85 94 01 + 00189 44 8b 85 94 01 00 00 mov r8d, DWORD PTR tv151[rbp] - 00179 48 8b 95 98 01 + 00190 48 8b 95 98 01 00 00 mov rdx, QWORD PTR tv149[rbp] - 00180 48 8d 0d 00 00 + 00197 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0CL@COPJALEP@XedDecode?5failed?5in?5NcDeepCopyL@ - 00187 e8 00 00 00 00 call printf + 0019e e8 00 00 00 00 call printf -; 311 : delete NewLink; +; 323 : delete NewLink; - 0018c 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] - 00190 48 89 85 88 01 + 001a3 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] + 001a7 48 89 85 88 01 00 00 mov QWORD PTR $T7[rbp], rax - 00197 48 83 bd 88 01 + 001ae 48 83 bd 88 01 00 00 00 cmp QWORD PTR $T7[rbp], 0 - 0019f 74 1a je SHORT $LN10@NcDeepCopy - 001a1 ba 01 00 00 00 mov edx, 1 - 001a6 48 8b 8d 88 01 + 001b6 74 1a je SHORT $LN10@NcDeepCopy + 001b8 ba 01 00 00 00 mov edx, 1 + 001bd 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR $T7[rbp] - 001ad e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 001b2 48 89 85 98 01 + 001c4 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 001c9 48 89 85 98 01 00 00 mov QWORD PTR tv155[rbp], rax - 001b9 eb 0b jmp SHORT $LN11@NcDeepCopy + 001d0 eb 0b jmp SHORT $LN11@NcDeepCopy $LN10@NcDeepCopy: - 001bb 48 c7 85 98 01 + 001d2 48 c7 85 98 01 00 00 00 00 00 00 mov QWORD PTR tv155[rbp], 0 $LN11@NcDeepCopy: -; 312 : return NULL; +; 324 : return NULL; - 001c6 33 c0 xor eax, eax - 001c8 eb 04 jmp SHORT $LN1@NcDeepCopy + 001dd 33 c0 xor eax, eax + 001df eb 04 jmp SHORT $LN1@NcDeepCopy $LN4@NcDeepCopy: -; 313 : } -; 314 : return NewLink; +; 325 : } +; 326 : return NewLink; - 001ca 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] + 001e1 48 8b 45 08 mov rax, QWORD PTR NewLink$1[rbp] $LN1@NcDeepCopy: -; 315 : } -; 316 : } +; 327 : } +; 328 : } - 001ce 48 8d a5 a8 01 + 001e5 48 8d a5 a8 01 00 00 lea rsp, QWORD PTR [rbp+424] - 001d5 5f pop rdi - 001d6 5d pop rbp - 001d7 c3 ret 0 + 001ec 5f pop rdi + 001ed 5d pop rbp + 001ee c3 ret 0 ?NcDeepCopyLink@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@@Z ENDP ; NcDeepCopyLink _TEXT ENDS ; COMDAT text$x @@ -11533,7 +11549,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:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z _TEXT SEGMENT T$ = 8 @@ -11541,7 +11557,7 @@ Jmp$ = 256 Delta$ = 264 ?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z PROC ; NcValidateJmp, COMDAT -; 258 : { +; 270 : { $LN23: 00000 89 54 24 10 mov DWORD PTR [rsp+16], edx @@ -11551,247 +11567,253 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 259 : PNATIVE_CODE_LINK T; -; 260 : if (Delta > 0) +; 271 : PNATIVE_CODE_LINK T; +; 272 : if (Delta > 0) - 00023 83 bd 08 01 00 + 0003a 83 bd 08 01 00 00 00 cmp DWORD PTR Delta$[rbp], 0 - 0002a 0f 8e a2 00 00 + 00041 0f 8e a2 00 00 00 jle $LN10@NcValidate -; 261 : { -; 262 : T = Jmp->Next; +; 273 : { +; 274 : T = Jmp->Next; - 00030 48 8b 85 00 01 + 00047 48 8b 85 00 01 00 00 mov rax, QWORD PTR Jmp$[rbp] - 00037 48 8b 00 mov rax, QWORD PTR [rax] - 0003a 48 89 45 08 mov QWORD PTR T$[rbp], rax + 0004e 48 8b 00 mov rax, QWORD PTR [rax] + 00051 48 89 45 08 mov QWORD PTR T$[rbp], rax $LN21@NcValidate: $LN2@NcValidate: -; 263 : while (Delta > 0 && T) +; 275 : while (Delta > 0 && T) - 0003e 83 bd 08 01 00 + 00055 83 bd 08 01 00 00 00 cmp DWORD PTR Delta$[rbp], 0 - 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 + 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 -; 264 : { -; 265 : if (T->Flags & CODE_FLAG_IS_LABEL) +; 276 : { +; 277 : if (T->Flags & CODE_FLAG_IS_LABEL) - 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 + 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 -; 266 : continue; +; 278 : continue; - 0005c eb e0 jmp SHORT $LN2@NcValidate + 00073 eb e0 jmp SHORT $LN2@NcValidate $LN12@NcValidate: -; 267 : Delta -= XedDecodedInstGetLength(&T->XedInstruction); +; 279 : Delta -= XedDecodedInstGetLength(&T->XedInstruction); - 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 + 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 00 mov ecx, DWORD PTR Delta$[rbp] - 00074 2b c8 sub ecx, eax - 00076 8b c1 mov eax, ecx - 00078 89 85 08 01 00 + 0008b 2b c8 sub ecx, eax + 0008d 8b c1 mov eax, ecx + 0008f 89 85 08 01 00 00 mov DWORD PTR Delta$[rbp], eax -; 268 : T = T->Next; +; 280 : T = T->Next; - 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 + 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 -; 269 : } +; 281 : } - 00089 eb b3 jmp SHORT $LN21@NcValidate + 000a0 eb b3 jmp SHORT $LN21@NcValidate $LN3@NcValidate: -; 270 : if (Delta != 0 || !T) +; 282 : if (Delta != 0 || !T) - 0008b 83 bd 08 01 00 + 000a2 83 bd 08 01 00 00 00 cmp DWORD PTR Delta$[rbp], 0 - 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 + 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 $LN14@NcValidate: -; 271 : return NULL; +; 283 : return NULL; - 0009b 33 c0 xor eax, eax - 0009d e9 db 00 00 00 jmp $LN1@NcValidate + 000b2 33 c0 xor eax, eax + 000b4 e9 db 00 00 00 jmp $LN1@NcValidate $LN13@NcValidate: $LN4@NcValidate: -; 272 : while (T && (T->Flags & CODE_FLAG_IS_LABEL)) +; 284 : while (T && (T->Flags & CODE_FLAG_IS_LABEL)) - 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 + 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 -; 273 : T = T->Next; +; 285 : T = T->Next; - 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 + 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 $LN5@NcValidate: -; 274 : return T; +; 286 : return T; - 000c4 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 000c8 e9 b0 00 00 00 jmp $LN1@NcValidate + 000db 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 000df e9 b0 00 00 00 jmp $LN1@NcValidate -; 275 : } +; 287 : } - 000cd e9 a4 00 00 00 jmp $LN11@NcValidate + 000e4 e9 a4 00 00 00 jmp $LN11@NcValidate $LN10@NcValidate: -; 276 : else if (Delta < 0) +; 288 : else if (Delta < 0) - 000d2 83 bd 08 01 00 + 000e9 83 bd 08 01 00 00 00 cmp DWORD PTR Delta$[rbp], 0 - 000d9 0f 8d 97 00 00 + 000f0 0f 8d 97 00 00 00 jge $LN15@NcValidate -; 277 : { -; 278 : T = Jmp; +; 289 : { +; 290 : T = Jmp; - 000df 48 8b 85 00 01 + 000f6 48 8b 85 00 01 00 00 mov rax, QWORD PTR Jmp$[rbp] - 000e6 48 89 45 08 mov QWORD PTR T$[rbp], rax + 000fd 48 89 45 08 mov QWORD PTR T$[rbp], rax $LN22@NcValidate: $LN6@NcValidate: -; 279 : while (T) +; 291 : while (T) - 000ea 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 - 000ef 74 49 je SHORT $LN7@NcValidate + 00101 48 83 7d 08 00 cmp QWORD PTR T$[rbp], 0 + 00106 74 49 je SHORT $LN7@NcValidate -; 280 : { -; 281 : if (T->Flags & CODE_FLAG_IS_LABEL) +; 292 : { +; 293 : if (T->Flags & CODE_FLAG_IS_LABEL) - 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 + 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 -; 282 : continue; +; 294 : continue; - 000ff eb e9 jmp SHORT $LN6@NcValidate + 00116 eb e9 jmp SHORT $LN6@NcValidate $LN16@NcValidate: -; 283 : Delta += XedDecodedInstGetLength(&T->XedInstruction); +; 295 : Delta += XedDecodedInstGetLength(&T->XedInstruction); - 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 + 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 00 mov ecx, DWORD PTR Delta$[rbp] - 00117 03 c8 add ecx, eax - 00119 8b c1 mov eax, ecx - 0011b 89 85 08 01 00 + 0012e 03 c8 add ecx, eax + 00130 8b c1 mov eax, ecx + 00132 89 85 08 01 00 00 mov DWORD PTR Delta$[rbp], eax -; 284 : if (Delta >= 0) +; 296 : if (Delta >= 0) - 00121 83 bd 08 01 00 + 00138 83 bd 08 01 00 00 00 cmp DWORD PTR Delta$[rbp], 0 - 00128 7c 02 jl SHORT $LN17@NcValidate + 0013f 7c 02 jl SHORT $LN17@NcValidate -; 285 : break; +; 297 : break; - 0012a eb 0e jmp SHORT $LN7@NcValidate + 00141 eb 0e jmp SHORT $LN7@NcValidate $LN17@NcValidate: -; 286 : T = T->Prev; +; 298 : T = T->Prev; - 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 + 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 -; 287 : } +; 299 : } - 00138 eb b0 jmp SHORT $LN22@NcValidate + 0014f eb b0 jmp SHORT $LN22@NcValidate $LN7@NcValidate: -; 288 : if (Delta != 0 || !T) +; 300 : if (Delta != 0 || !T) - 0013a 83 bd 08 01 00 + 00151 83 bd 08 01 00 00 00 cmp DWORD PTR Delta$[rbp], 0 - 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 + 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 $LN19@NcValidate: -; 289 : return NULL; +; 301 : return NULL; - 0014a 33 c0 xor eax, eax - 0014c eb 2f jmp SHORT $LN1@NcValidate + 00161 33 c0 xor eax, eax + 00163 eb 2f jmp SHORT $LN1@NcValidate $LN18@NcValidate: $LN8@NcValidate: -; 290 : while (T && (T->Flags & CODE_FLAG_IS_LABEL)) +; 302 : while (T && (T->Flags & CODE_FLAG_IS_LABEL)) - 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 + 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 -; 291 : T = T->Next; +; 303 : T = T->Next; - 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 + 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 $LN9@NcValidate: -; 292 : return T; +; 304 : return T; - 00170 48 8b 45 08 mov rax, QWORD PTR T$[rbp] - 00174 eb 07 jmp SHORT $LN1@NcValidate + 00187 48 8b 45 08 mov rax, QWORD PTR T$[rbp] + 0018b eb 07 jmp SHORT $LN1@NcValidate $LN15@NcValidate: $LN11@NcValidate: -; 293 : } -; 294 : return Jmp; +; 305 : } +; 306 : return Jmp; - 00176 48 8b 85 00 01 + 0018d 48 8b 85 00 01 00 00 mov rax, QWORD PTR Jmp$[rbp] $LN1@NcValidate: -; 295 : } +; 307 : } - 0017d 48 8d a5 e8 00 + 00194 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00184 5f pop rdi - 00185 5d pop rbp - 00186 c3 ret 0 + 0019b 5f pop rdi + 0019c 5d pop rbp + 0019d c3 ret 0 ?NcValidateJmp@@YAPEAU_NATIVE_CODE_LINK@@PEAU1@H@Z ENDP ; NcValidateJmp _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT CurrentLabelId$ = 4 @@ -11811,7 +11833,7 @@ __$ArrayPad$ = 544 Block$ = 592 ?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcCreateLabels, COMDAT -; 206 : { +; 218 : { $LN18: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -11820,331 +11842,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 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 + 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 02 00 00 mov rcx, QWORD PTR [rsp+632] - 0002c 48 8b 05 00 00 + 0002a 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 20 02 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 20 02 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 207 : ULONG CurrentLabelId = 0; +; 219 : ULONG CurrentLabelId = 0; - 00049 c7 45 04 00 00 + 00047 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) +; 220 : for (PNATIVE_CODE_LINK T = Block->Start; T; T = T->Next) - 00050 48 8b 85 50 02 + 0004e 48 8b 85 50 02 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 $LN2@NcCreateLa: - 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 + 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 $LN4@NcCreateLa: - 0006b 48 83 7d 28 00 cmp QWORD PTR T$4[rbp], 0 - 00070 0f 84 07 02 00 + 00069 48 83 7d 28 00 cmp QWORD PTR T$4[rbp], 0 + 0006e 0f 84 07 02 00 00 je $LN3@NcCreateLa -; 209 : { -; 210 : if (!(T->Flags & CODE_FLAG_IS_INST)) +; 221 : { +; 222 : if (!(T->Flags & CODE_FLAG_IS_INST)) - 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 + 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 -; 211 : continue; +; 223 : continue; - 00084 eb da jmp SHORT $LN2@NcCreateLa + 00082 eb da jmp SHORT $LN2@NcCreateLa $LN5@NcCreateLa: -; 212 : -; 213 : XED_CATEGORY_ENUM Category = XedDecodedInstGetCategory(&T->XedInstruction); +; 224 : +; 225 : XED_CATEGORY_ENUM Category = XedDecodedInstGetCategory(&T->XedInstruction); - 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 + 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 -; 214 : if (Category != XED_CATEGORY_COND_BR && Category != XED_CATEGORY_UNCOND_BR) +; 226 : if (Category != XED_CATEGORY_COND_BR && Category != XED_CATEGORY_UNCOND_BR) - 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 + 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 -; 215 : continue; +; 227 : continue; - 000a5 eb b9 jmp SHORT $LN2@NcCreateLa + 000a3 eb b9 jmp SHORT $LN2@NcCreateLa $LN6@NcCreateLa: -; 216 : -; 217 : ULONG OperandCount = XedDecodedInstNumOperands(&T->XedInstruction); +; 228 : +; 229 : ULONG OperandCount = XedDecodedInstNumOperands(&T->XedInstruction); - 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 + 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 -; 218 : if (OperandCount < 1) +; 230 : if (OperandCount < 1) - 000ba 83 7d 64 01 cmp DWORD PTR OperandCount$6[rbp], 1 - 000be 73 02 jae SHORT $LN7@NcCreateLa + 000b8 83 7d 64 01 cmp DWORD PTR OperandCount$6[rbp], 1 + 000bc 73 02 jae SHORT $LN7@NcCreateLa -; 219 : continue; +; 231 : continue; - 000c0 eb 9e jmp SHORT $LN2@NcCreateLa + 000be eb 9e jmp SHORT $LN2@NcCreateLa $LN7@NcCreateLa: -; 220 : -; 221 : CONST XED_INST* Inst = XedDecodedInstInst(&T->XedInstruction); +; 232 : +; 233 : CONST XED_INST* Inst = XedDecodedInstInst(&T->XedInstruction); - 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 + 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 00 00 mov QWORD PTR Inst$7[rbp], rax -; 222 : if (!Inst) +; 234 : if (!Inst) - 000d9 48 83 bd 88 00 + 000d7 48 83 bd 88 00 00 00 00 cmp QWORD PTR Inst$7[rbp], 0 - 000e1 75 05 jne SHORT $LN8@NcCreateLa + 000df 75 05 jne SHORT $LN8@NcCreateLa -; 223 : continue; +; 235 : continue; - 000e3 e9 78 ff ff ff jmp $LN2@NcCreateLa + 000e1 e9 78 ff ff ff jmp $LN2@NcCreateLa $LN8@NcCreateLa: -; 224 : -; 225 : CONST XED_OPERAND* Operand = XedInstOperand(Inst, 0); +; 236 : +; 237 : CONST XED_OPERAND* Operand = XedInstOperand(Inst, 0); - 000e8 33 d2 xor edx, edx - 000ea 48 8b 8d 88 00 + 000e6 33 d2 xor edx, edx + 000e8 48 8b 8d 88 00 00 00 mov rcx, QWORD PTR Inst$7[rbp] - 000f1 e8 00 00 00 00 call xed_inst_operand - 000f6 48 89 85 a8 00 + 000ef e8 00 00 00 00 call xed_inst_operand + 000f4 48 89 85 a8 00 00 00 mov QWORD PTR Operand$8[rbp], rax -; 226 : if (!Operand) +; 238 : if (!Operand) - 000fd 48 83 bd a8 00 + 000fb 48 83 bd a8 00 00 00 00 cmp QWORD PTR Operand$8[rbp], 0 - 00105 75 05 jne SHORT $LN9@NcCreateLa + 00103 75 05 jne SHORT $LN9@NcCreateLa -; 227 : continue; +; 239 : continue; - 00107 e9 54 ff ff ff jmp $LN2@NcCreateLa + 00105 e9 54 ff ff ff jmp $LN2@NcCreateLa $LN9@NcCreateLa: -; 228 : -; 229 : XED_OPERAND_TYPE_ENUM OperandType = XedOperandType(Operand); +; 240 : +; 241 : XED_OPERAND_TYPE_ENUM OperandType = XedOperandType(Operand); - 0010c 48 8b 8d a8 00 + 0010a 48 8b 8d a8 00 00 00 mov rcx, QWORD PTR Operand$8[rbp] - 00113 e8 00 00 00 00 call xed_operand_type - 00118 89 85 c4 00 00 + 00111 e8 00 00 00 00 call xed_operand_type + 00116 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) +; 242 : if (OperandType != XED_OPERAND_TYPE_IMM && OperandType != XED_OPERAND_TYPE_IMM_CONST) - 0011e 83 bd c4 00 00 + 0011c 83 bd c4 00 00 00 02 cmp DWORD PTR OperandType$9[rbp], 2 - 00125 74 0e je SHORT $LN10@NcCreateLa - 00127 83 bd c4 00 00 + 00123 74 0e je SHORT $LN10@NcCreateLa + 00125 83 bd c4 00 00 00 03 cmp DWORD PTR OperandType$9[rbp], 3 - 0012e 74 05 je SHORT $LN10@NcCreateLa + 0012c 74 05 je SHORT $LN10@NcCreateLa -; 231 : continue; +; 243 : continue; - 00130 e9 2b ff ff ff jmp $LN2@NcCreateLa + 0012e e9 2b ff ff ff jmp $LN2@NcCreateLa $LN10@NcCreateLa: -; 232 : -; 233 : INT32 BranchDisplacement = XedDecodedInstGetBranchDisplacement(&T->XedInstruction); +; 244 : +; 245 : INT32 BranchDisplacement = XedDecodedInstGetBranchDisplacement(&T->XedInstruction); - 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 + 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 00 mov DWORD PTR BranchDisplacement$10[rbp], eax -; 234 : PNATIVE_CODE_LINK JmpPos = NcValidateJmp(T, BranchDisplacement); +; 246 : PNATIVE_CODE_LINK JmpPos = NcValidateJmp(T, BranchDisplacement); - 0014b 8b 95 e4 00 00 + 00149 8b 95 e4 00 00 00 mov edx, DWORD PTR BranchDisplacement$10[rbp] - 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 + 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 00 00 mov QWORD PTR JmpPos$11[rbp], rax -; 235 : if (!JmpPos) +; 247 : if (!JmpPos) - 00161 48 83 bd 08 01 + 0015f 48 83 bd 08 01 00 00 00 cmp QWORD PTR JmpPos$11[rbp], 0 - 00169 75 25 jne SHORT $LN11@NcCreateLa + 00167 75 25 jne SHORT $LN11@NcCreateLa -; 236 : { -; 237 : printf("Failed to validate jump. Type: %s, Displacement: %d\n", XedCategoryEnumToString(Category), BranchDisplacement); +; 248 : { +; 249 : printf("Failed to validate jump. Type: %s, Displacement: %d\n", XedCategoryEnumToString(Category), BranchDisplacement); - 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 + 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 00 00 mov r8d, DWORD PTR BranchDisplacement$10[rbp] - 0017a 48 8b d0 mov rdx, rax - 0017d 48 8d 0d 00 00 + 00178 48 8b d0 mov rdx, rax + 0017b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0DF@KKBEBOEB@Failed?5to?5validate?5jump?4?5Type?3?5@ - 00184 e8 00 00 00 00 call printf + 00182 e8 00 00 00 00 call printf -; 238 : return FALSE; +; 250 : return FALSE; - 00189 33 c0 xor eax, eax - 0018b e9 f2 00 00 00 jmp $LN1@NcCreateLa + 00187 33 c0 xor eax, eax + 00189 e9 f2 00 00 00 jmp $LN1@NcCreateLa $LN11@NcCreateLa: -; 239 : } -; 240 : -; 241 : if (JmpPos->Prev && (JmpPos->Prev->Flags & CODE_FLAG_IS_LABEL)) +; 251 : } +; 252 : +; 253 : if (JmpPos->Prev && (JmpPos->Prev->Flags & CODE_FLAG_IS_LABEL)) - 00190 48 8b 85 08 01 + 0018e 48 8b 85 08 01 00 00 mov rax, QWORD PTR JmpPos$11[rbp] - 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 + 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 00 00 mov rax, QWORD PTR JmpPos$11[rbp] - 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 + 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 -; 242 : { -; 243 : T->Label = JmpPos->Prev->Label; +; 254 : { +; 255 : T->Label = JmpPos->Prev->Label; - 001b3 48 8b 85 08 01 + 001b1 48 8b 85 08 01 00 00 mov rax, QWORD PTR JmpPos$11[rbp] - 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 + 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 -; 244 : } +; 256 : } - 001c8 e9 9a 00 00 00 jmp $LN13@NcCreateLa + 001c6 e9 9a 00 00 00 jmp $LN13@NcCreateLa $LN12@NcCreateLa: -; 245 : else -; 246 : { -; 247 : NcInsertLinkBefore(JmpPos, new NATIVE_CODE_LINK(CurrentLabelId, Block)); +; 257 : else +; 258 : { +; 259 : NcInsertLinkBefore(JmpPos, new NATIVE_CODE_LINK(CurrentLabelId, Block)); - 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 + 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 00 00 mov QWORD PTR $T13[rbp], rax - 001de 48 83 bd 08 02 + 001dc 48 83 bd 08 02 00 00 00 cmp QWORD PTR $T13[rbp], 0 - 001e6 74 1f je SHORT $LN15@NcCreateLa - 001e8 4c 8b 85 50 02 + 001e4 74 1f je SHORT $LN15@NcCreateLa + 001e6 4c 8b 85 50 02 00 00 mov r8, QWORD PTR Block$[rbp] - 001ef 8b 55 04 mov edx, DWORD PTR CurrentLabelId$[rbp] - 001f2 48 8b 8d 08 02 + 001ed 8b 55 04 mov edx, DWORD PTR CurrentLabelId$[rbp] + 001f0 48 8b 8d 08 02 00 00 mov rcx, QWORD PTR $T13[rbp] - 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 + 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 00 00 mov QWORD PTR tv157[rbp], rax - 00205 eb 0b jmp SHORT $LN16@NcCreateLa + 00203 eb 0b jmp SHORT $LN16@NcCreateLa $LN15@NcCreateLa: - 00207 48 c7 85 18 02 + 00205 48 c7 85 18 02 00 00 00 00 00 00 mov QWORD PTR tv157[rbp], 0 $LN16@NcCreateLa: - 00212 48 8b 85 18 02 + 00210 48 8b 85 18 02 00 00 mov rax, QWORD PTR tv157[rbp] - 00219 48 89 85 e8 01 + 00217 48 89 85 e8 01 00 00 mov QWORD PTR $T12[rbp], rax - 00220 48 8b 95 e8 01 + 0021e 48 8b 95 e8 01 00 00 mov rdx, QWORD PTR $T12[rbp] - 00227 48 8b 8d 08 01 + 00225 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR JmpPos$11[rbp] - 0022e e8 00 00 00 00 call ?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z ; NcInsertLinkBefore + 0022c e8 00 00 00 00 call ?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z ; NcInsertLinkBefore -; 248 : Block->LabelIds.push_back(CurrentLabelId); +; 260 : Block->LabelIds.push_back(CurrentLabelId); - 00233 48 8b 85 50 02 + 00231 48 8b 85 50 02 00 00 mov rax, QWORD PTR Block$[rbp] - 0023a 48 83 c0 10 add rax, 16 - 0023e 48 89 85 18 02 + 00238 48 83 c0 10 add rax, 16 + 0023c 48 89 85 18 02 00 00 mov QWORD PTR tv163[rbp], rax - 00245 48 8d 55 04 lea rdx, QWORD PTR CurrentLabelId$[rbp] - 00249 48 8b 8d 18 02 + 00243 48 8d 55 04 lea rdx, QWORD PTR CurrentLabelId$[rbp] + 00247 48 8b 8d 18 02 00 00 mov rcx, QWORD PTR tv163[rbp] - 00250 e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back + 0024e e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back -; 249 : T->Label = CurrentLabelId; +; 261 : T->Label = CurrentLabelId; - 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 + 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 -; 250 : ++CurrentLabelId; +; 262 : ++CurrentLabelId; - 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 + 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 $LN13@NcCreateLa: -; 251 : } -; 252 : T->Flags |= CODE_FLAG_IS_REL_JMP; +; 263 : } +; 264 : T->Flags |= CODE_FLAG_IS_REL_JMP; - 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 + 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 -; 253 : } +; 265 : } - 00278 e9 e3 fd ff ff jmp $LN2@NcCreateLa + 00276 e9 e3 fd ff ff jmp $LN2@NcCreateLa $LN3@NcCreateLa: -; 254 : return TRUE; +; 266 : return TRUE; - 0027d b8 01 00 00 00 mov eax, 1 + 0027b b8 01 00 00 00 mov eax, 1 $LN1@NcCreateLa: -; 255 : } +; 267 : } - 00282 48 8b f8 mov rdi, rax - 00285 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00289 48 8d 15 00 00 + 00280 48 8b f8 mov rdi, rax + 00283 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00287 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData - 00290 e8 00 00 00 00 call _RTC_CheckStackVars - 00295 48 8b c7 mov rax, rdi - 00298 48 8b 8d 20 02 + 0028e e8 00 00 00 00 call _RTC_CheckStackVars + 00293 48 8b c7 mov rax, rdi + 00296 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0029f 48 33 cd xor rcx, rbp - 002a2 e8 00 00 00 00 call __security_check_cookie - 002a7 48 8d a5 38 02 + 0029d 48 33 cd xor rcx, rbp + 002a0 e8 00 00 00 00 call __security_check_cookie + 002a5 48 8d a5 38 02 00 00 lea rsp, QWORD PTR [rbp+568] - 002ae 5f pop rdi - 002af 5d pop rbp - 002b0 c3 ret 0 + 002ac 5f pop rdi + 002ad 5d pop rbp + 002ae c3 ret 0 ?NcCreateLabels@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcCreateLabels _TEXT ENDS ; COMDAT text$x @@ -12217,7 +12239,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:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z _TEXT SEGMENT T$1 = 8 @@ -12226,7 +12248,7 @@ Block$ = 264 FixLabels$ = 272 ?NcInsertBlockBefore@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z PROC ; NcInsertBlockBefore, COMDAT -; 186 : { +; 198 : { $LN10: 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d @@ -12237,166 +12259,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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 187 : if (!Link || !Link->Block || !Block || !Block->Start || !Block->End) +; 199 : if (!Link || !Link->Block || !Block || !Block->Start || !Block->End) - 00029 48 83 bd 00 01 + 00040 48 83 bd 00 01 00 00 00 cmp QWORD PTR Link$[rbp], 0 - 00031 74 33 je SHORT $LN6@NcInsertBl - 00033 48 8b 85 00 01 + 00048 74 33 je SHORT $LN6@NcInsertBl + 0004a 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 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 + 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 00 00 00 cmp QWORD PTR Block$[rbp], 0 - 00049 74 1b je SHORT $LN6@NcInsertBl - 0004b 48 8b 85 08 01 + 00060 74 1b je SHORT $LN6@NcInsertBl + 00062 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00052 48 83 38 00 cmp QWORD PTR [rax], 0 - 00056 74 0e je SHORT $LN6@NcInsertBl - 00058 48 8b 85 08 01 + 00069 48 83 38 00 cmp QWORD PTR [rax], 0 + 0006d 74 0e je SHORT $LN6@NcInsertBl + 0006f 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0005f 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 00064 75 07 jne SHORT $LN5@NcInsertBl + 00076 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 0007b 75 07 jne SHORT $LN5@NcInsertBl $LN6@NcInsertBl: -; 188 : return FALSE; +; 200 : return FALSE; - 00066 33 c0 xor eax, eax - 00068 e9 0e 01 00 00 jmp $LN1@NcInsertBl + 0007d 33 c0 xor eax, eax + 0007f e9 0e 01 00 00 jmp $LN1@NcInsertBl $LN5@NcInsertBl: -; 189 : -; 190 : if (FixLabels && Block->LabelIds.size() && Link->Block->LabelIds.size()) +; 201 : +; 202 : if (FixLabels && Block->LabelIds.size() && Link->Block->LabelIds.size()) - 0006d 83 bd 10 01 00 + 00084 83 bd 10 01 00 00 00 cmp DWORD PTR FixLabels$[rbp], 0 - 00074 74 4b je SHORT $LN7@NcInsertBl - 00076 48 8b 85 08 01 + 0008b 74 4b je SHORT $LN7@NcInsertBl + 0008d 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 00 00 mov rax, QWORD PTR Link$[rbp] - 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 + 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 -; 191 : NcFixLabelsForBlocks(Link->Block, Block); +; 203 : NcFixLabelsForBlocks(Link->Block, Block); - 000aa 48 8b 95 08 01 + 000c1 48 8b 95 08 01 00 00 mov rdx, QWORD PTR Block$[rbp] - 000b1 48 8b 85 00 01 + 000c8 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 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 + 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 $LN7@NcInsertBl: -; 192 : -; 193 : if (Link->Prev) +; 204 : +; 205 : if (Link->Prev) - 000c1 48 8b 85 00 01 + 000d8 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000c8 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 000cd 74 18 je SHORT $LN8@NcInsertBl + 000df 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 000e4 74 18 je SHORT $LN8@NcInsertBl -; 194 : Link->Prev->Next = Block->Start; +; 206 : Link->Prev->Next = Block->Start; - 000cf 48 8b 85 00 01 + 000e6 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000d6 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 000da 48 8b 8d 08 01 + 000ed 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 000f1 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 000e1 48 8b 09 mov rcx, QWORD PTR [rcx] - 000e4 48 89 08 mov QWORD PTR [rax], rcx + 000f8 48 8b 09 mov rcx, QWORD PTR [rcx] + 000fb 48 89 08 mov QWORD PTR [rax], rcx $LN8@NcInsertBl: -; 195 : Block->Start->Prev = Link->Prev; +; 207 : Block->Start->Prev = Link->Prev; - 000e7 48 8b 85 08 01 + 000fe 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 000ee 48 8b 00 mov rax, QWORD PTR [rax] - 000f1 48 8b 8d 00 01 + 00105 48 8b 00 mov rax, QWORD PTR [rax] + 00108 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 000f8 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 000fc 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0010f 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00113 48 89 48 08 mov QWORD PTR [rax+8], rcx -; 196 : Block->End->Next = Link; +; 208 : Block->End->Next = Link; - 00100 48 8b 85 08 01 + 00117 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00107 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0010b 48 8b 8d 00 01 + 0011e 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00122 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 00112 48 89 08 mov QWORD PTR [rax], rcx + 00129 48 89 08 mov QWORD PTR [rax], rcx -; 197 : Link->Prev = Block->End; +; 209 : Link->Prev = Block->End; - 00115 48 8b 85 00 01 + 0012c 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 0011c 48 8b 8d 08 01 + 00133 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00123 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 00127 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0013a 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 0013e 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) +; 210 : +; 211 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 0012b 48 8b 85 08 01 + 00142 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 $LN2@NcInsertBl: - 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 + 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 $LN4@NcInsertBl: - 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 + 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 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 -; 200 : T->Block = Link->Block; +; 212 : T->Block = Link->Block; - 00161 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00165 48 8b 8d 00 01 + 00178 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 0017c 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 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 + 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 $LN3@NcInsertBl: -; 201 : -; 202 : return TRUE; +; 213 : +; 214 : return TRUE; - 00176 b8 01 00 00 00 mov eax, 1 + 0018d b8 01 00 00 00 mov eax, 1 $LN1@NcInsertBl: -; 203 : } +; 215 : } - 0017b 48 8d a5 e8 00 + 00192 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00182 5f pop rdi - 00183 5d pop rbp - 00184 c3 ret 0 + 00199 5f pop rdi + 0019a 5d pop rbp + 0019b 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:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z _TEXT SEGMENT T$1 = 8 @@ -12405,7 +12433,7 @@ Block$ = 264 FixLabels$ = 272 ?NcInsertBlockAfter@@YAHPEAU_NATIVE_CODE_LINK@@PEAU_NATIVE_CODE_BLOCK@@H@Z PROC ; NcInsertBlockAfter, COMDAT -; 166 : { +; 178 : { $LN10: 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d @@ -12416,172 +12444,178 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 167 : if (!Link || !Link->Block || !Block || !Block->Start || !Block->End || Link->Block == Block) +; 179 : if (!Link || !Link->Block || !Block || !Block->Start || !Block->End || Link->Block == Block) - 00029 48 83 bd 00 01 + 00040 48 83 bd 00 01 00 00 00 cmp QWORD PTR Link$[rbp], 0 - 00031 74 47 je SHORT $LN6@NcInsertBl - 00033 48 8b 85 00 01 + 00048 74 47 je SHORT $LN6@NcInsertBl + 0004a 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 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 + 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 00 00 00 cmp QWORD PTR Block$[rbp], 0 - 00049 74 2f je SHORT $LN6@NcInsertBl - 0004b 48 8b 85 08 01 + 00060 74 2f je SHORT $LN6@NcInsertBl + 00062 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00052 48 83 38 00 cmp QWORD PTR [rax], 0 - 00056 74 22 je SHORT $LN6@NcInsertBl - 00058 48 8b 85 08 01 + 00069 48 83 38 00 cmp QWORD PTR [rax], 0 + 0006d 74 22 je SHORT $LN6@NcInsertBl + 0006f 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 00 00 mov rax, QWORD PTR Link$[rbp] - 0006d 48 8b 8d 08 01 + 00084 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00074 48 39 48 10 cmp QWORD PTR [rax+16], rcx - 00078 75 07 jne SHORT $LN5@NcInsertBl + 0008b 48 39 48 10 cmp QWORD PTR [rax+16], rcx + 0008f 75 07 jne SHORT $LN5@NcInsertBl $LN6@NcInsertBl: -; 168 : return FALSE; +; 180 : return FALSE; - 0007a 33 c0 xor eax, eax - 0007c e9 0b 01 00 00 jmp $LN1@NcInsertBl + 00091 33 c0 xor eax, eax + 00093 e9 0b 01 00 00 jmp $LN1@NcInsertBl $LN5@NcInsertBl: -; 169 : -; 170 : if (FixLabels && Block->LabelIds.size() && Link->Block->LabelIds.size()) +; 181 : +; 182 : if (FixLabels && Block->LabelIds.size() && Link->Block->LabelIds.size()) - 00081 83 bd 10 01 00 + 00098 83 bd 10 01 00 00 00 cmp DWORD PTR FixLabels$[rbp], 0 - 00088 74 4b je SHORT $LN7@NcInsertBl - 0008a 48 8b 85 08 01 + 0009f 74 4b je SHORT $LN7@NcInsertBl + 000a1 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 00 00 mov rax, QWORD PTR Link$[rbp] - 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 + 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 -; 171 : NcFixLabelsForBlocks(Link->Block, Block); +; 183 : NcFixLabelsForBlocks(Link->Block, Block); - 000be 48 8b 95 08 01 + 000d5 48 8b 95 08 01 00 00 mov rdx, QWORD PTR Block$[rbp] - 000c5 48 8b 85 00 01 + 000dc 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 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 + 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 $LN7@NcInsertBl: -; 172 : -; 173 : if (Link->Next) +; 184 : +; 185 : if (Link->Next) - 000d5 48 8b 85 00 01 + 000ec 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000dc 48 83 38 00 cmp QWORD PTR [rax], 0 - 000e0 74 19 je SHORT $LN8@NcInsertBl + 000f3 48 83 38 00 cmp QWORD PTR [rax], 0 + 000f7 74 19 je SHORT $LN8@NcInsertBl -; 174 : Link->Next->Prev = Block->End; +; 186 : Link->Next->Prev = Block->End; - 000e2 48 8b 85 00 01 + 000f9 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 000e9 48 8b 00 mov rax, QWORD PTR [rax] - 000ec 48 8b 8d 08 01 + 00100 48 8b 00 mov rax, QWORD PTR [rax] + 00103 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 000f3 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 000f7 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0010a 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 0010e 48 89 48 08 mov QWORD PTR [rax+8], rcx $LN8@NcInsertBl: -; 175 : Block->End->Next = Link->Next; +; 187 : Block->End->Next = Link->Next; - 000fb 48 8b 85 08 01 + 00112 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 00102 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00106 48 8b 8d 00 01 + 00119 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0011d 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 0010d 48 8b 09 mov rcx, QWORD PTR [rcx] - 00110 48 89 08 mov QWORD PTR [rax], rcx + 00124 48 8b 09 mov rcx, QWORD PTR [rcx] + 00127 48 89 08 mov QWORD PTR [rax], rcx -; 176 : Block->Start->Prev = Link; +; 188 : Block->Start->Prev = Link; - 00113 48 8b 85 08 01 + 0012a 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 0011a 48 8b 00 mov rax, QWORD PTR [rax] - 0011d 48 8b 8d 00 01 + 00131 48 8b 00 mov rax, QWORD PTR [rax] + 00134 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 00124 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0013b 48 89 48 08 mov QWORD PTR [rax+8], rcx -; 177 : Link->Next = Block->Start; +; 189 : Link->Next = Block->Start; - 00128 48 8b 85 00 01 + 0013f 48 8b 85 00 01 00 00 mov rax, QWORD PTR Link$[rbp] - 0012f 48 8b 8d 08 01 + 00146 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00136 48 8b 09 mov rcx, QWORD PTR [rcx] - 00139 48 89 08 mov QWORD PTR [rax], rcx + 0014d 48 8b 09 mov rcx, QWORD PTR [rcx] + 00150 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) +; 190 : +; 191 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 0013c 48 8b 85 08 01 + 00153 48 8b 85 08 01 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 $LN2@NcInsertBl: - 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 + 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 $LN4@NcInsertBl: - 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 + 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 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 -; 180 : T->Block = Link->Block; +; 192 : T->Block = Link->Block; - 00172 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 00176 48 8b 8d 00 01 + 00189 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 0018d 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR Link$[rbp] - 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 + 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 $LN3@NcInsertBl: -; 181 : -; 182 : return TRUE; +; 193 : +; 194 : return TRUE; - 00187 b8 01 00 00 00 mov eax, 1 + 0019e b8 01 00 00 00 mov eax, 1 $LN1@NcInsertBl: -; 183 : } +; 195 : } - 0018c 48 8d a5 e8 00 + 001a3 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00193 5f pop rdi - 00194 5d pop rbp - 00195 c3 ret 0 + 001aa 5f pop rdi + 001ab 5d pop rbp + 001ac 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:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z _TEXT SEGMENT T$1 = 8 @@ -12601,230 +12635,461 @@ tv138 = 552 tv133 = 560 tv183 = 568 tv92 = 576 -tv188 = 584 -tv161 = 592 -tv153 = 600 -tv193 = 608 -tv159 = 616 -tv165 = 624 -Block1$ = 672 -Block2$ = 680 +tv198 = 584 +tv188 = 592 +tv161 = 600 +tv153 = 608 +tv199 = 616 +tv193 = 624 +tv159 = 632 +tv165 = 640 +Block1$ = 688 +Block2$ = 696 ?NcFixLabelsForBlocks@@YAXPEAU_NATIVE_CODE_BLOCK@@0@Z PROC ; NcFixLabelsForBlocks, COMDAT -; 155 : { +; 167 : { $LN17: 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 a8 02 - 00 00 sub rsp, 680 ; 000002a8H + 0000c 48 81 ec b8 02 + 00 00 sub rsp, 696 ; 000002b8H 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00018 c7 85 04 02 00 + 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 00 00 00 00 00 mov DWORD PTR $T9[rbp], 0 - 00022 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00039 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 156 : for (PNATIVE_CODE_LINK T = Block2->Start; T && T != Block2->End->Next; T = T->Next) +; 168 : for (PNATIVE_CODE_LINK T = Block2->Start; T && T != Block2->End->Next; T = T->Next) - 0002e 48 8b 85 a8 02 + 00045 48 8b 85 b8 02 00 00 mov rax, QWORD PTR Block2$[rbp] - 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 + 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 $LN2@NcFixLabel: - 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 + 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 $LN4@NcFixLabel: - 00049 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 - 0004e 0f 84 11 02 00 + 00060 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 00065 0f 84 2e 02 00 00 je $LN3@NcFixLabel - 00054 48 8b 85 a8 02 + 0006b 48 8b 85 b8 02 00 00 mov rax, QWORD PTR Block2$[rbp] - 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 + 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 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()) +; 169 : { +; 170 : if ((T->Flags & CODE_FLAG_IS_LABEL) && StdFind(Block1->LabelIds.begin(), Block1->LabelIds.end(), T->Label) != Block1->LabelIds.end()) - 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 + 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 00 je $LN7@NcFixLabel - 0007e 48 8d 85 08 01 + 00095 48 8d 85 08 01 00 00 lea rax, QWORD PTR $T3[rbp] - 00085 48 89 85 38 01 + 0009c 48 89 85 38 01 00 00 mov QWORD PTR $T4[rbp], rax - 0008c 48 8b 85 a0 02 + 000a3 48 8b 85 b0 02 00 00 mov rax, QWORD PTR Block1$[rbp] - 00093 48 83 c0 10 add rax, 16 - 00097 48 89 85 18 02 + 000aa 48 83 c0 10 add rax, 16 + 000ae 48 89 85 18 02 00 00 mov QWORD PTR tv89[rbp], rax - 0009e 48 8b 95 38 01 + 000b5 48 8b 95 38 01 00 00 mov rdx, QWORD PTR $T4[rbp] - 000a5 48 8b 8d 18 02 + 000bc 48 8b 8d 18 02 00 00 mov rcx, QWORD PTR tv89[rbp] - 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 + 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 00 00 mov QWORD PTR tv181[rbp], rax - 000b8 48 8b 85 20 02 + 000cf 48 8b 85 20 02 00 00 mov rax, QWORD PTR tv181[rbp] - 000bf 48 89 85 28 02 + 000d6 48 89 85 28 02 00 00 mov QWORD PTR tv138[rbp], rax - 000c6 48 8d 85 58 01 + 000dd 48 8d 85 58 01 00 00 lea rax, QWORD PTR $T5[rbp] - 000cd 48 89 85 88 01 + 000e4 48 89 85 88 01 00 00 mov QWORD PTR $T6[rbp], rax - 000d4 48 8b 85 a0 02 + 000eb 48 8b 85 b0 02 00 00 mov rax, QWORD PTR Block1$[rbp] - 000db 48 83 c0 10 add rax, 16 - 000df 48 89 85 30 02 + 000f2 48 83 c0 10 add rax, 16 + 000f6 48 89 85 30 02 00 00 mov QWORD PTR tv133[rbp], rax - 000e6 48 8b 95 88 01 + 000fd 48 8b 95 88 01 00 00 mov rdx, QWORD PTR $T6[rbp] - 000ed 48 8b 8d 30 02 + 00104 48 8b 8d 30 02 00 00 mov rcx, QWORD PTR tv133[rbp] - 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 + 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 00 00 mov QWORD PTR tv183[rbp], rax - 00100 48 8b 85 38 02 + 00117 48 8b 85 38 02 00 00 mov rax, QWORD PTR tv183[rbp] - 00107 48 89 85 40 02 + 0011e 48 89 85 40 02 00 00 mov QWORD PTR tv92[rbp], rax - 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 + 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 00 00 mov r8, QWORD PTR tv138[rbp] - 00120 48 8b 95 40 02 + 00137 48 8b 95 40 02 00 00 mov rdx, QWORD PTR tv92[rbp] - 00127 48 8d 8d a8 01 + 0013e 48 8d 8d a8 01 00 00 lea rcx, QWORD PTR $T7[rbp] - 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 + 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 00 00 mov QWORD PTR tv188[rbp], rax - 0013a 8b 85 04 02 00 + 0015f 8b 85 04 02 00 00 mov eax, DWORD PTR $T9[rbp] - 00140 83 c8 01 or eax, 1 - 00143 89 85 04 02 00 + 00165 83 c8 01 or eax, 1 + 00168 89 85 04 02 00 00 mov DWORD PTR $T9[rbp], eax - 00149 48 8b 85 48 02 + 0016e 48 8b 85 50 02 00 00 mov rax, QWORD PTR tv188[rbp] - 00150 48 89 85 50 02 + 00175 48 89 85 58 02 00 00 mov QWORD PTR tv161[rbp], rax - 00157 48 8b 85 a0 02 + 0017c 48 8b 85 b0 02 00 00 mov rax, QWORD PTR Block1$[rbp] - 0015e 48 83 c0 10 add rax, 16 - 00162 48 89 85 58 02 + 00183 48 83 c0 10 add rax, 16 + 00187 48 89 85 60 02 00 00 mov QWORD PTR tv153[rbp], rax - 00169 48 8d 95 d8 01 + 0018e 48 8d 95 d8 01 00 00 lea rdx, QWORD PTR $T8[rbp] - 00170 48 8b 8d 58 02 + 00195 48 8b 8d 60 02 00 00 mov rcx, QWORD PTR tv153[rbp] - 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 + 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 00 00 mov QWORD PTR tv193[rbp], rax - 00183 8b 85 04 02 00 + 001b6 8b 85 04 02 00 00 mov eax, DWORD PTR $T9[rbp] - 00189 83 c8 02 or eax, 2 - 0018c 89 85 04 02 00 + 001bc 83 c8 02 or eax, 2 + 001bf 89 85 04 02 00 00 mov DWORD PTR $T9[rbp], eax - 00192 48 8b 85 60 02 + 001c5 48 8b 85 70 02 00 00 mov rax, QWORD PTR tv193[rbp] - 00199 48 89 85 68 02 + 001cc 48 89 85 78 02 00 00 mov QWORD PTR tv159[rbp], rax - 001a0 48 8b 95 68 02 + 001d3 48 8b 95 78 02 00 00 mov rdx, QWORD PTR tv159[rbp] - 001a7 48 8b 8d 50 02 + 001da 48 8b 8d 58 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 + 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 - 001c4 eb 0a jmp SHORT $LN8@NcFixLabel + 001f7 eb 0a jmp SHORT $LN8@NcFixLabel $LN7@NcFixLabel: - 001c6 c7 85 70 02 00 + 001f9 c7 85 80 02 00 00 00 00 00 00 mov DWORD PTR tv165[rbp], 0 $LN8@NcFixLabel: - 001d0 0f b6 85 70 02 + 00203 0f b6 85 80 02 00 00 movzx eax, BYTE PTR tv165[rbp] - 001d7 88 85 e4 00 00 + 0020a 88 85 e4 00 00 00 mov BYTE PTR $T2[rbp], al - 001dd 8b 85 04 02 00 + 00210 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 + 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 - 001f1 48 8d 8d d8 01 + 00224 48 8d 8d d8 01 00 00 lea rcx, QWORD PTR $T8[rbp] - 001f8 e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 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: - 001fd 8b 85 04 02 00 + 00231 8b 85 04 02 00 00 mov eax, DWORD PTR $T9[rbp] - 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 + 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 - 00211 48 8d 8d a8 01 + 00245 48 8d 8d a8 01 00 00 lea rcx, QWORD PTR $T7[rbp] - 00218 e8 00 00 00 00 call ??1?$_Vector_iterator@V?$_Vector_val@U?$_Simple_types@K@std@@@std@@@std@@QEAA@XZ + 0024c 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 + 00251 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 + 00258 85 c0 test eax, eax + 0025a 74 38 je SHORT $LN5@NcFixLabel -; 159 : { -; 160 : NcChangeLabelId(Block2, T->Label, NcGenUnusedLabelId(Block1)); +; 171 : { +; 172 : NcChangeLabelId(Block2, T->Label, NcGenUnusedLabelId(Block1)); - 00228 48 8b 8d a0 02 + 0025c 48 8b 8d b0 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 + 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 - 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 + 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 - 00247 44 8b 85 14 02 + 0027b 44 8b 85 14 02 00 00 mov r8d, DWORD PTR tv178[rbp] - 0024e 8b 95 18 02 00 + 00282 8b 95 18 02 00 00 mov edx, DWORD PTR tv176[rbp] - 00254 48 8b 8d a8 02 + 00288 48 8b 8d b8 02 00 00 mov rcx, QWORD PTR Block2$[rbp] - 0025b e8 00 00 00 00 call ?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z ; NcChangeLabelId + 0028f e8 00 00 00 00 call ?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z ; NcChangeLabelId $LN5@NcFixLabel: -; 161 : } -; 162 : } +; 173 : } +; 174 : } - 00260 e9 d9 fd ff ff jmp $LN2@NcFixLabel + 00294 e9 bc fd ff ff jmp $LN2@NcFixLabel $LN3@NcFixLabel: -; 163 : } +; 175 : } - 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 + 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 + 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 +; 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 + 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 +; 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 ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT ReturnLabelId$ = 4 @@ -12842,181 +13107,362 @@ tv130 = 520 tv93 = 528 tv166 = 536 tv84 = 544 -tv168 = 552 -tv153 = 560 -tv145 = 568 -tv170 = 576 -tv151 = 584 -__$ArrayPad$ = 592 -Block$ = 640 +tv171 = 552 +tv168 = 560 +tv153 = 568 +tv145 = 576 +tv172 = 584 +tv170 = 592 +tv151 = 600 +__$ArrayPad$ = 608 +Block$ = 656 ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcGenUnusedLabelId, COMDAT -; 137 : { +; 149 : { $LN9: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx 00005 55 push rbp 00006 57 push rdi - 00007 48 81 ec 88 02 - 00 00 sub rsp, 648 ; 00000288H + 00007 48 81 ec 98 02 + 00 00 sub rsp, 664 ; 00000298H 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 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 + 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 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 50 02 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 60 02 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__84EFCFFB_NativeCode@cpp + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 138 : ULONG ReturnLabelId = rand(); +; 150 : ULONG ReturnLabelId = rand(); - 00049 ff 15 00 00 00 + 00047 ff 15 00 00 00 00 call QWORD PTR __imp_rand - 0004f 89 45 04 mov DWORD PTR ReturnLabelId$[rbp], eax + 0004d 89 45 04 mov DWORD PTR ReturnLabelId$[rbp], eax $LN2@NcGenUnuse: -; 139 : while (StdFind(Block->LabelIds.begin(), Block->LabelIds.end(), ReturnLabelId) != Block->LabelIds.end()) +; 151 : while (StdFind(Block->LabelIds.begin(), Block->LabelIds.end(), ReturnLabelId) != Block->LabelIds.end()) - 00052 48 8d 85 08 01 + 00050 48 8d 85 08 01 00 00 lea rax, QWORD PTR $T5[rbp] - 00059 48 89 85 38 01 + 00057 48 89 85 38 01 00 00 mov QWORD PTR $T6[rbp], rax - 00060 48 8b 85 80 02 + 0005e 48 8b 85 90 02 00 00 mov rax, QWORD PTR Block$[rbp] - 00067 48 83 c0 10 add rax, 16 - 0006b 48 89 85 f8 01 + 00065 48 83 c0 10 add rax, 16 + 00069 48 89 85 f8 01 00 00 mov QWORD PTR tv81[rbp], rax - 00072 48 8b 95 38 01 + 00070 48 8b 95 38 01 00 00 mov rdx, QWORD PTR $T6[rbp] - 00079 48 8b 8d f8 01 + 00077 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR tv81[rbp] - 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 + 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 00 00 mov QWORD PTR tv164[rbp], rax - 0008c 48 8b 85 00 02 + 0008a 48 8b 85 00 02 00 00 mov rax, QWORD PTR tv164[rbp] - 00093 48 89 85 08 02 + 00091 48 89 85 08 02 00 00 mov QWORD PTR tv130[rbp], rax - 0009a 48 8d 85 58 01 + 00098 48 8d 85 58 01 00 00 lea rax, QWORD PTR $T7[rbp] - 000a1 48 89 85 88 01 + 0009f 48 89 85 88 01 00 00 mov QWORD PTR $T8[rbp], rax - 000a8 48 8b 85 80 02 + 000a6 48 8b 85 90 02 00 00 mov rax, QWORD PTR Block$[rbp] - 000af 48 83 c0 10 add rax, 16 - 000b3 48 89 85 10 02 + 000ad 48 83 c0 10 add rax, 16 + 000b1 48 89 85 10 02 00 00 mov QWORD PTR tv93[rbp], rax - 000ba 48 8b 95 88 01 + 000b8 48 8b 95 88 01 00 00 mov rdx, QWORD PTR $T8[rbp] - 000c1 48 8b 8d 10 02 + 000bf 48 8b 8d 10 02 00 00 mov rcx, QWORD PTR tv93[rbp] - 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 + 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 - 000d4 48 8b 85 18 02 + 000d2 48 8b 85 18 02 00 00 mov rax, QWORD PTR tv166[rbp] - 000db 48 89 85 20 02 + 000d9 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 + 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] - 000ed 48 8b 95 20 02 + 000eb 48 8b 95 20 02 00 00 mov rdx, QWORD PTR tv84[rbp] - 000f4 48 8d 8d a8 01 + 000f2 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 + 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 - 00107 48 8b 85 28 02 + 00113 48 8b 85 30 02 00 00 mov rax, QWORD PTR tv168[rbp] - 0010e 48 89 85 30 02 + 0011a 48 89 85 38 02 00 00 mov QWORD PTR tv153[rbp], rax - 00115 48 8b 85 80 02 + 00121 48 8b 85 90 02 00 00 mov rax, QWORD PTR Block$[rbp] - 0011c 48 83 c0 10 add rax, 16 - 00120 48 89 85 38 02 + 00128 48 83 c0 10 add rax, 16 + 0012c 48 89 85 40 02 00 00 mov QWORD PTR tv145[rbp], rax - 00127 48 8d 95 d8 01 + 00133 48 8d 95 d8 01 00 00 lea rdx, QWORD PTR $T10[rbp] - 0012e 48 8b 8d 38 02 + 0013a 48 8b 8d 40 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 + 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 - 00141 48 8b 85 40 02 + 0015b 48 8b 85 50 02 00 00 mov rax, QWORD PTR tv170[rbp] - 00148 48 89 85 48 02 + 00162 48 89 85 58 02 00 00 mov QWORD PTR tv151[rbp], rax - 0014f 48 8b 95 48 02 + 00169 48 8b 95 58 02 00 00 mov rdx, QWORD PTR tv151[rbp] - 00156 48 8b 8d 30 02 + 00170 48 8b 8d 38 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 + 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 - 00168 48 8d 8d d8 01 + 00182 48 8d 8d d8 01 00 00 lea rcx, QWORD PTR $T10[rbp] - 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 + 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] - 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 + 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] - 00187 85 c0 test eax, eax - 00189 74 0e je SHORT $LN3@NcGenUnuse + 001a2 85 c0 test eax, eax + 001a4 74 0e je SHORT $LN3@NcGenUnuse -; 140 : ReturnLabelId = rand(); +; 152 : ReturnLabelId = rand(); - 0018b ff 15 00 00 00 + 001a6 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 + 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); +; 153 : Block->LabelIds.push_back(ReturnLabelId); - 00199 48 8b 85 80 02 + 001b4 48 8b 85 90 02 00 00 mov rax, QWORD PTR Block$[rbp] - 001a0 48 83 c0 10 add rax, 16 - 001a4 48 89 85 f8 01 + 001bb 48 83 c0 10 add rax, 16 + 001bf 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 + 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] - 001b6 e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back + 001d1 e8 00 00 00 00 call ?push_back@?$vector@KV?$allocator@K@std@@@std@@QEAAXAEBK@Z ; std::vector >::push_back -; 142 : return ReturnLabelId; +; 154 : return ReturnLabelId; - 001bb 8b 45 04 mov eax, DWORD PTR ReturnLabelId$[rbp] + 001d6 8b 45 04 mov eax, DWORD PTR ReturnLabelId$[rbp] -; 143 : } +; 155 : } - 001be 8b f8 mov edi, eax - 001c0 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 001c4 48 8d 15 00 00 + 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 - 001cb e8 00 00 00 00 call _RTC_CheckStackVars - 001d0 8b c7 mov eax, edi - 001d2 48 8b 8d 50 02 + 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] - 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 + 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 + 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 -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z _TEXT SEGMENT T$1 = 8 @@ -13025,7 +13471,7 @@ Original$ = 264 New$ = 272 ?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z PROC ; NcChangeLabelId, COMDAT -; 146 : { +; 158 : { $LN8: 00000 44 89 44 24 18 mov DWORD PTR [rsp+24], r8d @@ -13036,81 +13482,182 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 147 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) +; 159 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 00028 48 8b 85 00 01 + 0003f 48 8b 85 00 01 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 $LN2@NcChangeLa: - 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 + 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 $LN4@NcChangeLa: - 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 + 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 00 00 mov rax, QWORD PTR Block$[rbp] - 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) - - 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 + 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 + +; 160 : { +; 161 : 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 $LN6@NcChangeLa: - 0007a 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 0007e 8b 8d 08 01 00 + 00091 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00095 8b 8d 08 01 00 00 mov ecx, DWORD PTR Original$[rbp] - 00084 39 48 1c cmp DWORD PTR [rax+28], ecx - 00087 75 0d jne SHORT $LN5@NcChangeLa + 0009b 39 48 1c cmp DWORD PTR [rax+28], ecx + 0009e 75 0d jne SHORT $LN5@NcChangeLa -; 150 : T->Label = New; +; 162 : T->Label = New; - 00089 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 0008d 8b 8d 10 01 00 + 000a0 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 000a4 8b 8d 10 01 00 00 mov ecx, DWORD PTR New$[rbp] - 00093 89 48 1c mov DWORD PTR [rax+28], ecx + 000aa 89 48 1c mov DWORD PTR [rax+28], ecx $LN5@NcChangeLa: -; 151 : } +; 163 : } - 00096 eb a0 jmp SHORT $LN2@NcChangeLa + 000ad eb a0 jmp SHORT $LN2@NcChangeLa $LN3@NcChangeLa: -; 152 : } +; 164 : } - 00098 48 8d a5 e8 00 + 000af 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0009f 5f pop rdi - 000a0 5d pop rbp - 000a1 c3 ret 0 + 000b6 5f pop rdi + 000b7 5d pop rbp + 000b8 c3 ret 0 ?NcChangeLabelId@@YAXPEAU_NATIVE_CODE_BLOCK@@KK@Z ENDP ; NcChangeLabelId _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp -; COMDAT ?NcCalcBlockSize@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT TotalSize$ = 4 T$1 = 40 Block$ = 288 -?NcCalcBlockSize@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcCalcBlockSize, COMDAT +?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcCalcBlockSizeInBytes, COMDAT + +; 137 : { + +$LN7: + 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:__84EFCFFB_NativeCode@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 138 : ULONG TotalSize = 0; + + 00036 c7 45 04 00 00 + 00 00 mov DWORD PTR TotalSize$[rbp], 0 + +; 139 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) + + 0003d 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 +$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 +$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 + 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 + +; 140 : { +; 141 : 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 + +; 142 : continue; + + 00081 eb ca jmp SHORT $LN2@NcCalcBloc +$LN5@NcCalcBloc: + +; 143 : 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 + +; 144 : } + + 00094 eb b7 jmp SHORT $LN2@NcCalcBloc +$LN3@NcCalcBloc: + +; 145 : return TotalSize; + + 00096 8b 45 04 mov eax, DWORD PTR TotalSize$[rbp] + +; 146 : } + + 00099 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 +?NcCalcBlockSizeInBytes@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcCalcBlockSizeInBytes +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; COMDAT ?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z +_TEXT SEGMENT +InstructionCount$ = 4 +T$1 = 40 +Block$ = 288 +?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcCountInstructions, COMDAT ; 125 : { @@ -13121,79 +13668,82 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 126 : ULONG TotalSize = 0; +; 126 : ULONG InstructionCount = 0; - 0001f c7 45 04 00 00 - 00 00 mov DWORD PTR TotalSize$[rbp], 0 + 00036 c7 45 04 00 00 + 00 00 mov DWORD PTR InstructionCount$[rbp], 0 ; 127 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 00026 48 8b 85 20 01 + 0003d 48 8b 85 20 01 00 00 mov rax, QWORD PTR Block$[rbp] - 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: - 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: - 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 + 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@NcCountIns +$LN2@NcCountIns: + 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 +$LN4@NcCountIns: + 00058 48 83 7d 28 00 cmp QWORD PTR T$1[rbp], 0 + 0005d 74 2e je SHORT $LN3@NcCountIns + 0005f 48 8b 85 20 01 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 1a je SHORT $LN3@NcCountIns ; 128 : { ; 129 : if (T->Flags & CODE_FLAG_IS_LABEL) - 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 + 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@NcCountIns ; 130 : continue; - 0006a eb ca jmp SHORT $LN2@NcCalcBloc -$LN5@NcCalcBloc: + 00081 eb ca jmp SHORT $LN2@NcCountIns +$LN5@NcCountIns: -; 131 : TotalSize += T->RawDataSize; +; 131 : ++InstructionCount; - 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 + 00083 8b 45 04 mov eax, DWORD PTR InstructionCount$[rbp] + 00086 ff c0 inc eax + 00088 89 45 04 mov DWORD PTR InstructionCount$[rbp], eax ; 132 : } - 0007d eb b7 jmp SHORT $LN2@NcCalcBloc -$LN3@NcCalcBloc: + 0008b eb c0 jmp SHORT $LN2@NcCountIns +$LN3@NcCountIns: -; 133 : return TotalSize; +; 133 : return InstructionCount; - 0007f 8b 45 04 mov eax, DWORD PTR TotalSize$[rbp] + 0008d 8b 45 04 mov eax, DWORD PTR InstructionCount$[rbp] ; 134 : } - 00082 48 8d a5 08 01 + 00090 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 00089 5f pop rdi - 0008a 5d pop rbp - 0008b c3 ret 0 -?NcCalcBlockSize@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcCalcBlockSize + 00097 5f pop rdi + 00098 5d pop rbp + 00099 c3 ret 0 +?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcCountInstructions _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z _TEXT SEGMENT Link$ = 224 @@ -13208,66 +13758,72 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 115 : if (Link) - 0001f 48 83 bd e0 00 + 00036 48 83 bd e0 00 00 00 00 cmp QWORD PTR Link$[rbp], 0 - 00027 74 4c je SHORT $LN2@NcUnlink + 0003e 74 4c je SHORT $LN2@NcUnlink ; 116 : { ; 117 : if (Link->Next) - 00029 48 8b 85 e0 00 + 00040 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Link$[rbp] - 00030 48 83 38 00 cmp QWORD PTR [rax], 0 - 00034 74 19 je SHORT $LN3@NcUnlink + 00047 48 83 38 00 cmp QWORD PTR [rax], 0 + 0004b 74 19 je SHORT $LN3@NcUnlink ; 118 : Link->Next->Prev = Link->Prev; - 00036 48 8b 85 e0 00 + 0004d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Link$[rbp] - 0003d 48 8b 00 mov rax, QWORD PTR [rax] - 00040 48 8b 8d e0 00 + 00054 48 8b 00 mov rax, QWORD PTR [rax] + 00057 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 00047 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 0004b 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0005e 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00062 48 89 48 08 mov QWORD PTR [rax+8], rcx $LN3@NcUnlink: ; 119 : if (Link->Prev) - 0004f 48 8b 85 e0 00 + 00066 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Link$[rbp] - 00056 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 0005b 74 18 je SHORT $LN4@NcUnlink + 0006d 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 00072 74 18 je SHORT $LN4@NcUnlink ; 120 : Link->Prev->Next = Link->Next; - 0005d 48 8b 85 e0 00 + 00074 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Link$[rbp] - 00064 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00068 48 8b 8d e0 00 + 0007b 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0007f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 0006f 48 8b 09 mov rcx, QWORD PTR [rcx] - 00072 48 89 08 mov QWORD PTR [rax], rcx + 00086 48 8b 09 mov rcx, QWORD PTR [rcx] + 00089 48 89 08 mov QWORD PTR [rax], rcx $LN4@NcUnlink: $LN2@NcUnlink: ; 121 : } ; 122 : } - 00075 48 8d a5 c8 00 + 0008c 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 + 00093 5f pop rdi + 00094 5d pop rbp + 00095 c3 ret 0 ?NcUnlink@@YAXPEAU_NATIVE_CODE_LINK@@@Z ENDP ; NcUnlink _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z _TEXT SEGMENT Link1$ = 224 @@ -13284,72 +13840,78 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 103 : if (Link1) - 00024 48 83 bd e0 00 + 0003b 48 83 bd e0 00 00 00 00 cmp QWORD PTR Link1$[rbp], 0 - 0002c 74 5c je SHORT $LN2@NcInsertLi + 00043 74 5c je SHORT $LN2@NcInsertLi ; 104 : { ; 105 : Link2->Next = Link1; - 0002e 48 8b 85 e8 00 + 00045 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 00035 48 8b 8d e0 00 + 0004c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Link1$[rbp] - 0003c 48 89 08 mov QWORD PTR [rax], rcx + 00053 48 89 08 mov QWORD PTR [rax], rcx ; 106 : Link2->Prev = Link1->Prev; - 0003f 48 8b 85 e8 00 + 00056 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 00046 48 8b 8d e0 00 + 0005d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Link1$[rbp] - 0004d 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 00051 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00064 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00068 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 107 : Link1->Prev = Link2; - 00055 48 8b 85 e0 00 + 0006c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Link1$[rbp] - 0005c 48 8b 8d e8 00 + 00073 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link2$[rbp] - 00063 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0007a 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 108 : if (Link2->Prev) - 00067 48 8b 85 e8 00 + 0007e 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 0006e 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 00073 74 15 je SHORT $LN3@NcInsertLi + 00085 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 0008a 74 15 je SHORT $LN3@NcInsertLi ; 109 : Link2->Prev->Next = Link2; - 00075 48 8b 85 e8 00 + 0008c 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 0007c 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00080 48 8b 8d e8 00 + 00093 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00097 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link2$[rbp] - 00087 48 89 08 mov QWORD PTR [rax], rcx + 0009e 48 89 08 mov QWORD PTR [rax], rcx $LN3@NcInsertLi: $LN2@NcInsertLi: ; 110 : } ; 111 : } - 0008a 48 8d a5 c8 00 + 000a1 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00091 5f pop rdi - 00092 5d pop rbp - 00093 c3 ret 0 + 000a8 5f pop rdi + 000a9 5d pop rbp + 000aa c3 ret 0 ?NcInsertLinkBefore@@YAXPEAU_NATIVE_CODE_LINK@@0@Z ENDP ; NcInsertLinkBefore _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z _TEXT SEGMENT Link1$ = 224 @@ -13366,72 +13928,78 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 91 : if (Link1) - 00024 48 83 bd e0 00 + 0003b 48 83 bd e0 00 00 00 00 cmp QWORD PTR Link1$[rbp], 0 - 0002c 74 59 je SHORT $LN2@NcInsertLi + 00043 74 59 je SHORT $LN2@NcInsertLi ; 92 : { ; 93 : Link2->Prev = Link1; - 0002e 48 8b 85 e8 00 + 00045 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 00035 48 8b 8d e0 00 + 0004c 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Link1$[rbp] - 0003c 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00053 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 94 : Link2->Next = Link1->Next; - 00040 48 8b 85 e8 00 + 00057 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 00047 48 8b 8d e0 00 + 0005e 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Link1$[rbp] - 0004e 48 8b 09 mov rcx, QWORD PTR [rcx] - 00051 48 89 08 mov QWORD PTR [rax], rcx + 00065 48 8b 09 mov rcx, QWORD PTR [rcx] + 00068 48 89 08 mov QWORD PTR [rax], rcx ; 95 : Link1->Next = Link2; - 00054 48 8b 85 e0 00 + 0006b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Link1$[rbp] - 0005b 48 8b 8d e8 00 + 00072 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link2$[rbp] - 00062 48 89 08 mov QWORD PTR [rax], rcx + 00079 48 89 08 mov QWORD PTR [rax], rcx ; 96 : if (Link2->Next) - 00065 48 8b 85 e8 00 + 0007c 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 0006c 48 83 38 00 cmp QWORD PTR [rax], 0 - 00070 74 15 je SHORT $LN3@NcInsertLi + 00083 48 83 38 00 cmp QWORD PTR [rax], 0 + 00087 74 15 je SHORT $LN3@NcInsertLi ; 97 : Link2->Next->Prev = Link2; - 00072 48 8b 85 e8 00 + 00089 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link2$[rbp] - 00079 48 8b 00 mov rax, QWORD PTR [rax] - 0007c 48 8b 8d e8 00 + 00090 48 8b 00 mov rax, QWORD PTR [rax] + 00093 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link2$[rbp] - 00083 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0009a 48 89 48 08 mov QWORD PTR [rax+8], rcx $LN3@NcInsertLi: $LN2@NcInsertLi: ; 98 : } ; 99 : } - 00087 48 8d a5 c8 00 + 0009e 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0008e 5f pop rdi - 0008f 5d pop rbp - 00090 c3 ret 0 + 000a5 5f pop rdi + 000a6 5d pop rbp + 000a7 c3 ret 0 ?NcInsertLinkAfter@@YAXPEAU_NATIVE_CODE_LINK@@0@Z ENDP ; NcInsertLinkAfter _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z _TEXT SEGMENT Block$ = 224 @@ -13448,111 +14016,117 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 71 : if (!Link) - 00024 48 83 bd e8 00 + 0003b 48 83 bd e8 00 00 00 00 cmp QWORD PTR Link$[rbp], 0 - 0002c 75 05 jne SHORT $LN2@NcPrependT + 00043 75 05 jne SHORT $LN2@NcPrependT ; 72 : return; - 0002e e9 9b 00 00 00 jmp $LN1@NcPrependT + 00045 e9 9b 00 00 00 jmp $LN1@NcPrependT $LN2@NcPrependT: ; 73 : ; 74 : Link->Block = Block; - 00033 48 8b 85 e8 00 + 0004a 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link$[rbp] - 0003a 48 8b 8d e0 00 + 00051 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 00041 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00058 48 89 48 10 mov QWORD PTR [rax+16], rcx ; 75 : Link->Next = Block->Start; - 00045 48 8b 85 e8 00 + 0005c 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link$[rbp] - 0004c 48 8b 8d e0 00 + 00063 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 00053 48 8b 09 mov rcx, QWORD PTR [rcx] - 00056 48 89 08 mov QWORD PTR [rax], rcx + 0006a 48 8b 09 mov rcx, QWORD PTR [rcx] + 0006d 48 89 08 mov QWORD PTR [rax], rcx ; 76 : Link->Prev = NULL; - 00059 48 8b 85 e8 00 + 00070 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link$[rbp] - 00060 48 c7 40 08 00 + 00077 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 ; 77 : ; 78 : if (!Block->End || !Block->Start) - 00068 48 8b 85 e0 00 + 0007f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 00 00 mov rax, QWORD PTR Block$[rbp] - 0007d 48 83 38 00 cmp QWORD PTR [rax], 0 - 00081 75 25 jne SHORT $LN3@NcPrependT + 00094 48 83 38 00 cmp QWORD PTR [rax], 0 + 00098 75 25 jne SHORT $LN3@NcPrependT $LN5@NcPrependT: ; 79 : { ; 80 : Block->Start = Block->End = Link; - 00083 48 8b 85 e0 00 + 0009a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 0008a 48 8b 8d e8 00 + 000a1 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 00091 48 89 48 08 mov QWORD PTR [rax+8], rcx - 00095 48 8b 85 e0 00 + 000a8 48 89 48 08 mov QWORD PTR [rax+8], rcx + 000ac 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 0009c 48 8b 8d e8 00 + 000b3 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 000a3 48 89 08 mov QWORD PTR [rax], rcx + 000ba 48 89 08 mov QWORD PTR [rax], rcx ; 81 : } - 000a6 eb 26 jmp SHORT $LN4@NcPrependT + 000bd eb 26 jmp SHORT $LN4@NcPrependT $LN3@NcPrependT: ; 82 : else ; 83 : { ; 84 : Block->Start->Prev = Link; - 000a8 48 8b 85 e0 00 + 000bf 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 000af 48 8b 00 mov rax, QWORD PTR [rax] - 000b2 48 8b 8d e8 00 + 000c6 48 8b 00 mov rax, QWORD PTR [rax] + 000c9 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 000b9 48 89 48 08 mov QWORD PTR [rax+8], rcx + 000d0 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 85 : Block->Start = Link; - 000bd 48 8b 85 e0 00 + 000d4 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 000c4 48 8b 8d e8 00 + 000db 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 000cb 48 89 08 mov QWORD PTR [rax], rcx + 000e2 48 89 08 mov QWORD PTR [rax], rcx $LN4@NcPrependT: $LN1@NcPrependT: ; 86 : } ; 87 : } - 000ce 48 8d a5 c8 00 + 000e5 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 000d5 5f pop rdi - 000d6 5d pop rbp - 000d7 c3 ret 0 + 000ec 5f pop rdi + 000ed 5d pop rbp + 000ee 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:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z _TEXT SEGMENT Block$ = 224 @@ -13569,111 +14143,117 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 51 : if (!Link) - 00024 48 83 bd e8 00 + 0003b 48 83 bd e8 00 00 00 00 cmp QWORD PTR Link$[rbp], 0 - 0002c 75 05 jne SHORT $LN2@NcAppendTo + 00043 75 05 jne SHORT $LN2@NcAppendTo ; 52 : return; - 0002e e9 9d 00 00 00 jmp $LN1@NcAppendTo + 00045 e9 9d 00 00 00 jmp $LN1@NcAppendTo $LN2@NcAppendTo: ; 53 : ; 54 : Link->Block = Block; - 00033 48 8b 85 e8 00 + 0004a 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link$[rbp] - 0003a 48 8b 8d e0 00 + 00051 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 00041 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00058 48 89 48 10 mov QWORD PTR [rax+16], rcx ; 55 : Link->Prev = Block->End; - 00045 48 8b 85 e8 00 + 0005c 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link$[rbp] - 0004c 48 8b 8d e0 00 + 00063 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR Block$[rbp] - 00053 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 00057 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0006a 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 0006e 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 56 : Link->Next = NULL; - 0005b 48 8b 85 e8 00 + 00072 48 8b 85 e8 00 00 00 mov rax, QWORD PTR Link$[rbp] - 00062 48 c7 00 00 00 + 00079 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 ; 57 : ; 58 : if (!Block->End || !Block->Start) - 00069 48 8b 85 e0 00 + 00080 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 00 00 mov rax, QWORD PTR Block$[rbp] - 0007e 48 83 38 00 cmp QWORD PTR [rax], 0 - 00082 75 25 jne SHORT $LN3@NcAppendTo + 00095 48 83 38 00 cmp QWORD PTR [rax], 0 + 00099 75 25 jne SHORT $LN3@NcAppendTo $LN5@NcAppendTo: ; 59 : { ; 60 : Block->Start = Block->End = Link; - 00084 48 8b 85 e0 00 + 0009b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 0008b 48 8b 8d e8 00 + 000a2 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 00092 48 89 48 08 mov QWORD PTR [rax+8], rcx - 00096 48 8b 85 e0 00 + 000a9 48 89 48 08 mov QWORD PTR [rax+8], rcx + 000ad 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 0009d 48 8b 8d e8 00 + 000b4 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 000a4 48 89 08 mov QWORD PTR [rax], rcx + 000bb 48 89 08 mov QWORD PTR [rax], rcx ; 61 : } - 000a7 eb 27 jmp SHORT $LN4@NcAppendTo + 000be eb 27 jmp SHORT $LN4@NcAppendTo $LN3@NcAppendTo: ; 62 : else ; 63 : { ; 64 : Block->End->Next = Link; - 000a9 48 8b 85 e0 00 + 000c0 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 000b0 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 000b4 48 8b 8d e8 00 + 000c7 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 000cb 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 000bb 48 89 08 mov QWORD PTR [rax], rcx + 000d2 48 89 08 mov QWORD PTR [rax], rcx ; 65 : Block->End = Link; - 000be 48 8b 85 e0 00 + 000d5 48 8b 85 e0 00 00 00 mov rax, QWORD PTR Block$[rbp] - 000c5 48 8b 8d e8 00 + 000dc 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR Link$[rbp] - 000cc 48 89 48 08 mov QWORD PTR [rax+8], rcx + 000e3 48 89 48 08 mov QWORD PTR [rax+8], rcx $LN4@NcAppendTo: $LN1@NcAppendTo: ; 66 : } ; 67 : } - 000d0 48 8d a5 c8 00 + 000e7 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 000d7 5f pop rdi - 000d8 5d pop rbp - 000d9 c3 ret 0 + 000ee 5f pop rdi + 000ef 5d pop rbp + 000f0 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:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ??0_NATIVE_CODE_BLOCK@@QEAA@XZ _TEXT SEGMENT this$ = 224 @@ -13688,53 +14268,59 @@ $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 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] - 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 > + 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 > ; 45 : Start = End = NULL; - 00032 48 8b 85 e0 00 + 00049 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00039 48 c7 40 08 00 + 00050 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 00041 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 c7 00 00 00 + 0005f 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 ; 46 : LabelIds.clear(); - 0004f 48 8b 85 e0 00 + 00066 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 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 + 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 ; 47 : } - 00062 48 8b 85 e0 00 + 00079 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00069 48 8d a5 c8 00 + 00080 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00070 5f pop rdi - 00071 5d pop rbp - 00072 c3 ret 0 + 00087 5f pop rdi + 00088 5d pop rbp + 00089 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.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 1381 : constexpr const _Ty1& _Get_first() const noexcept { +; 1347 : constexpr const _Ty1& _Get_first() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -13743,32 +14329,38 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; -; 1382 : return *this; - - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] -; 1383 : } +; 1349 : } - 00026 48 8d a5 c8 00 + 0003d 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 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 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.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 { +; 1343 : constexpr _Ty1& _Get_first() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -13777,32 +14369,38 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; -; 1378 : return *this; - - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] -; 1379 : } +; 1345 : } - 00026 48 8d a5 c8 00 + 0003d 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 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 401 : _CONSTEXPR20_CONTAINER _Vector_val() noexcept : _Myfirst(), _Mylast(), _Myend() {} +; 375 : _Vector_val() noexcept : _Myfirst(), _Mylast(), _Myend() {} $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -13811,41 +14409,47 @@ $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 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 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00026 e8 00 00 00 00 call ??0_Container_base12@std@@QEAA@XZ ; std::_Container_base12::_Container_base12 - 0002b 48 8b 85 e0 00 + 0003d e8 00 00 00 00 call ??0_Container_base12@std@@QEAA@XZ ; std::_Container_base12::_Container_base12 + 00042 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00032 48 c7 40 08 00 + 00049 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 0003a 48 8b 85 e0 00 + 00051 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00041 48 c7 40 10 00 + 00058 48 c7 40 10 00 00 00 00 mov QWORD PTR [rax+16], 0 - 00049 48 8b 85 e0 00 + 00060 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00050 48 c7 40 18 00 + 00067 48 c7 40 18 00 00 00 00 mov QWORD PTR [rax+24], 0 - 00058 48 8b 85 e0 00 + 0006f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 8d a5 c8 00 + 00076 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 + 0007d 5f pop rdi + 0007e 5d pop rbp + 0007f 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 1821 : _NODISCARD _CONSTEXPR20_CONTAINER const _Alty& _Getal() const noexcept { +; 1735 : const _Alty& _Getal() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -13854,34 +14458,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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1822 : return _Mypair._Get_first(); + 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(); - 0001f 48 8b 85 e0 00 + 00036 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@@QEBAAEBV?$allocator@K@2@XZ ; std::_Compressed_pair,std::_Vector_val >,1>::_Get_first + 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 -; 1823 : } +; 1737 : } - 0002e 48 8d a5 c8 00 + 00046 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 + 0004d 5f pop rdi + 0004e 5d pop rbp + 0004f 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 { +; 1731 : _Alty& _Getal() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -13890,321 +14501,180 @@ $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 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(); + 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(); - 0001f 48 8b 85 e0 00 + 00036 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 + 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 -; 1819 : } +; 1733 : } - 0002e 48 8d a5 c8 00 + 00046 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 + 0004d 5f pop rdi + 0004e 5d pop rbp + 0004f 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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z _TEXT SEGMENT -this$ = 224 -_First$ = 232 -_Last$ = 240 -?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z PROC ; std::vector >::_Orphan_range, COMDAT - -; 1802 : _CONSTEXPR20_CONTAINER void _Orphan_range(pointer _First, pointer _Last) const { - -$LN3: - 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 0000f 55 push rbp - 00010 57 push rdi - 00011 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 0001d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 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 +_Pnext$ = 40 +_Pnextptr$4 = 72 +__$ArrayPad$ = 280 +this$ = 320 +_First$ = 328 +_Last$ = 336 +?_Orphan_range@?$vector@KV?$allocator@K@std@@@std@@AEBAXPEAK0@Z PROC ; std::vector >::_Orphan_range, COMDAT -; 1797 : void _Orphan_range_locked(pointer _First, pointer _Last) const { +; 1711 : void _Orphan_range(pointer _First, pointer _Last) const { // orphan iterators within specified (inclusive) range -$LN4: +$LN9: 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 + 00011 48 81 ec 48 01 + 00 00 sub rsp, 328 ; 00000148H 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 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 + 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 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 d8 00 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 18 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BF2A7ACC_vector + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode -; 1798 : _Lockit _Lock(_LOCK_DEBUG); +; 1712 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1713 : _Lockit _Lock(_LOCK_DEBUG); - 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 + 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 00 call QWORD PTR __imp_??0_Lockit@std@@QEAA@H@Z - 00062 90 npad 1 - -; 1799 : _Orphan_range_unlocked(_First, _Last); - - 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; +; 1714 : +; 1715 : _Iterator_base12** _Pnext = &_Mypair._Myval2._Myproxy->_Myfirstiter; - 00029 48 8b 85 60 01 + 00060 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 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 + 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 $LN2@Orphan_ran: -; 1784 : while (*_Pnext) { +; 1716 : while (*_Pnext) { - 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 + 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 -; 1785 : const auto _Pnextptr = static_cast(**_Pnext)._Ptr; +; 1717 : const auto _Pnextptr = static_cast(**_Pnext)._Ptr; - 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 + 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 -; 1786 : if (_Pnextptr < _First || _Last < _Pnextptr) { // skip the iterator +; 1718 : if (_Pnextptr < _First || _Last < _Pnextptr) { // skip the iterator - 00054 48 8b 85 68 01 + 0008b 48 8b 85 48 01 00 00 mov rax, QWORD PTR _First$[rbp] - 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 + 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 00 00 cmp QWORD PTR _Last$[rbp], rax - 0006c 73 19 jae SHORT $LN4@Orphan_ran + 000a3 73 11 jae SHORT $LN4@Orphan_ran $LN6@Orphan_ran: -; 1787 : const auto _Temp = *_Pnext; // TRANSITION, VSO-1269037 +; 1719 : _Pnext = &(*_Pnext)->_Mynextiter; - 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 - -; 1789 : } else { // orphan the iterator - - 00085 eb 25 jmp SHORT $LN5@Orphan_ran + 000b4 eb 20 jmp SHORT $LN5@Orphan_ran $LN4@Orphan_ran: -; 1790 : const auto _Temp = *_Pnext; // TRANSITION, VSO-1269037 - - 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 - -; 1791 : _Temp->_Myproxy = nullptr; +; 1721 : (*_Pnext)->_Myproxy = nullptr; - 00092 48 8b 45 68 mov rax, QWORD PTR _Temp$3[rbp] - 00096 48 c7 00 00 00 + 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 -; 1792 : *_Pnext = _Temp->_Mynextiter; +; 1722 : *_Pnext = (*_Pnext)->_Mynextiter; - 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 + 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: -; 1793 : } -; 1794 : } +; 1723 : } +; 1724 : } - 000ac eb 8d jmp SHORT $LN2@Orphan_ran + 000d6 eb 9a jmp SHORT $LN2@Orphan_ran $LN3@Orphan_ran: -; 1795 : } +; 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 : } - 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 + 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 _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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 1773 : [[noreturn]] static void _Xlength() { +; 1703 : [[noreturn]] static void _Xlength() { $LN3: 00000 40 55 push rbp @@ -14212,28 +14682,32 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 1774 : _Xlength_error("vector too long"); +; 1704 : _Xlength_error("vector too long"); - 0001b 48 8d 0d 00 00 + 0002a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0BA@FOIKENOD@vector?5too?5long@ - 00022 e8 00 00 00 00 call ?_Xlength_error@std@@YAXPEBD@Z ; std::_Xlength_error + 00031 e8 00 00 00 00 call ?_Xlength_error@std@@YAXPEBD@Z ; std::_Xlength_error $LN2@Xlength: -; 1775 : } +; 1705 : } - 00027 48 8d a5 c8 00 + 00036 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002e 5f pop rdi - 0002f 5d pop rbp - 00030 c3 ret 0 + 0003d 5f pop rdi + 0003e 5d pop rbp + 0003f 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z _TEXT SEGMENT _My_data$ = 8 @@ -14249,7 +14723,7 @@ _Newsize$ = 384 _Newcapacity$ = 392 ?_Change_array@?$vector@KV?$allocator@K@std@@@std@@AEAAXQEAK_K1@Z PROC ; std::vector >::_Change_array, COMDAT -; 1736 : const pointer _Newvec, const size_type _Newsize, const size_type _Newcapacity) { +; 1666 : void _Change_array(const pointer _Newvec, const size_type _Newsize, const size_type _Newcapacity) { $LN4: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 @@ -14261,229 +14735,241 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 1737 : // orphan all iterators, discard old array, acquire new array -; 1738 : auto& _My_data = _Mypair._Myval2; +; 1667 : // orphan all iterators, discard old array, acquire new array +; 1668 : auto& _My_data = _Mypair._Myval2; - 0002e 48 8b 85 70 01 + 00045 48 8b 85 70 01 00 00 mov rax, QWORD PTR this$[rbp] - 00035 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 0004c 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1739 : pointer& _Myfirst = _My_data._Myfirst; +; 1669 : pointer& _Myfirst = _My_data._Myfirst; - 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 + 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 -; 1740 : pointer& _Mylast = _My_data._Mylast; +; 1670 : pointer& _Mylast = _My_data._Mylast; - 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 + 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 -; 1741 : pointer& _Myend = _My_data._Myend; +; 1671 : pointer& _Myend = _My_data._Myend; - 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 + 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 -; 1742 : -; 1743 : _My_data._Orphan_all(); +; 1672 : +; 1673 : _My_data._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 + 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 -; 1744 : -; 1745 : if (_Myfirst) { // destroy and deallocate old array +; 1674 : +; 1675 : if (_Myfirst) { // destroy and deallocate old array - 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 + 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 -; 1746 : _Destroy(_Myfirst, _Mylast); +; 1676 : _Destroy(_Myfirst, _Mylast); - 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 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00085 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy + 0009c e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy -; 1747 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); +; 1677 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); - 0008a 48 8b 8d 70 01 + 000a1 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR this$[rbp] - 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 + 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 00 00 mov QWORD PTR tv90[rbp], rax - 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 + 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 00 00 mov QWORD PTR tv88[rbp], rax - 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 + 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 00 00 mov QWORD PTR tv86[rbp], rax - 000c7 4c 8b 85 40 01 + 000de 4c 8b 85 40 01 00 00 mov r8, QWORD PTR tv88[rbp] - 000ce 48 8b 95 48 01 + 000e5 48 8b 95 48 01 00 00 mov rdx, QWORD PTR tv86[rbp] - 000d5 48 8b 8d 38 01 + 000ec 48 8b 8d 38 01 00 00 mov rcx, QWORD PTR tv90[rbp] - 000dc e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate + 000f3 e8 00 00 00 00 call ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z ; std::allocator::deallocate $LN2@Change_arr: -; 1748 : } -; 1749 : -; 1750 : _Myfirst = _Newvec; +; 1678 : } +; 1679 : +; 1680 : _Myfirst = _Newvec; - 000e1 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] - 000e5 48 8b 8d 78 01 + 000f8 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000fc 48 8b 8d 78 01 00 00 mov rcx, QWORD PTR _Newvec$[rbp] - 000ec 48 89 08 mov QWORD PTR [rax], rcx + 00103 48 89 08 mov QWORD PTR [rax], rcx -; 1751 : _Mylast = _Newvec + _Newsize; +; 1681 : _Mylast = _Newvec + _Newsize; - 000ef 48 8b 85 78 01 + 00106 48 8b 85 78 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 000f6 48 8b 8d 80 01 + 0010d 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR _Newsize$[rbp] - 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 + 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 -; 1752 : _Myend = _Newvec + _Newcapacity; +; 1682 : _Myend = _Newvec + _Newcapacity; - 00108 48 8b 85 78 01 + 0011f 48 8b 85 78 01 00 00 mov rax, QWORD PTR _Newvec$[rbp] - 0010f 48 8b 8d 88 01 + 00126 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR _Newcapacity$[rbp] - 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 + 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 -; 1753 : } +; 1683 : } - 00121 48 8d a5 58 01 + 00138 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 00128 5f pop rdi - 00129 5d pop rbp - 0012a c3 ret 0 + 0013f 5f pop rdi + 00140 5d pop rbp + 00141 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z _TEXT SEGMENT _Oldcapacity$ = 8 -_Max$ = 40 -_Geometric$ = 72 -this$ = 320 -_Newsize$ = 328 +_Geometric$ = 40 +tv67 = 248 +this$ = 288 +_Newsize$ = 296 ?_Calculate_growth@?$vector@KV?$allocator@K@std@@@std@@AEBA_K_K@Z PROC ; std::vector >::_Calculate_growth, COMDAT -; 1683 : _CONSTEXPR20_CONTAINER size_type _Calculate_growth(const size_type _Newsize) const { +; 1615 : 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 48 01 - 00 00 sub rsp, 328 ; 00000148H + 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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 1684 : // given _Oldcapacity and _Newsize, calculate geometric growth -; 1685 : const size_type _Oldcapacity = capacity(); +; 1618 : +; 1619 : if (_Oldcapacity > max_size() - _Oldcapacity / 2) { - 00024 48 8b 8d 40 01 + 0004b 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 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 + 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_ -; 1686 : const auto _Max = max_size(); +; 1620 : return _Newsize; // geometric growth would overflow - 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_ + 0007f 48 8b 85 28 01 + 00 00 mov rax, QWORD PTR _Newsize$[rbp] + 00086 eb 36 jmp SHORT $LN1@Calculate_ $LN2@Calculate_: -; 1690 : } -; 1691 : -; 1692 : const size_type _Geometric = _Oldcapacity + _Oldcapacity / 2; +; 1621 : } +; 1622 : +; 1623 : const size_type _Geometric = _Oldcapacity + _Oldcapacity / 2; - 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 + 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 -; 1693 : -; 1694 : if (_Geometric < _Newsize) { +; 1624 : +; 1625 : if (_Geometric < _Newsize) { - 00084 48 8b 85 48 01 + 000a4 48 8b 85 28 01 00 00 mov rax, QWORD PTR _Newsize$[rbp] - 0008b 48 39 45 48 cmp QWORD PTR _Geometric$[rbp], rax - 0008f 73 09 jae SHORT $LN3@Calculate_ + 000ab 48 39 45 28 cmp QWORD PTR _Geometric$[rbp], rax + 000af 73 09 jae SHORT $LN3@Calculate_ -; 1695 : return _Newsize; // geometric growth would be insufficient +; 1626 : return _Newsize; // geometric growth would be insufficient - 00091 48 8b 85 48 01 + 000b1 48 8b 85 28 01 00 00 mov rax, QWORD PTR _Newsize$[rbp] - 00098 eb 04 jmp SHORT $LN1@Calculate_ + 000b8 eb 04 jmp SHORT $LN1@Calculate_ $LN3@Calculate_: -; 1696 : } -; 1697 : -; 1698 : return _Geometric; // geometric growth is sufficient +; 1627 : } +; 1628 : +; 1629 : return _Geometric; // geometric growth is sufficient - 0009a 48 8b 45 48 mov rax, QWORD PTR _Geometric$[rbp] + 000ba 48 8b 45 28 mov rax, QWORD PTR _Geometric$[rbp] $LN1@Calculate_: -; 1699 : } +; 1630 : } - 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 + 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 ?_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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z _TEXT SEGMENT this$ = 224 @@ -14491,7 +14977,7 @@ _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) { +; 1611 : void _Destroy(pointer _First, pointer _Last) { // destroy [_First, _Last) using allocator $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -14502,34 +14988,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 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()); + 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()); - 00029 48 8b 8d e0 00 + 00040 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 + 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 00 00 mov rdx, QWORD PTR _Last$[rbp] - 0003f 48 8b 8d e8 00 + 00056 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 > + 0005d e8 00 00 00 00 call ??$_Destroy_range@V?$allocator@K@std@@@std@@YAXPEAKQEAKAEAV?$allocator@K@0@@Z ; std::_Destroy_range > -; 1681 : } +; 1613 : } - 0004b 48 8d a5 c8 00 + 00062 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 + 00069 5f pop rdi + 0006a 5d pop rbp + 0006b 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z _TEXT SEGMENT $T1 = 196 @@ -14539,7 +15030,7 @@ _Last$ = 272 _Dest$ = 280 ?_Umove_if_noexcept@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00@Z PROC ; std::vector >::_Umove_if_noexcept, COMDAT -; 1672 : _CONSTEXPR20_CONTAINER void _Umove_if_noexcept(pointer _First, pointer _Last, pointer _Dest) { +; 1605 : void _Umove_if_noexcept(pointer _First, pointer _Last, pointer _Dest) { $LN3: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 @@ -14551,44 +15042,50 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 1673 : // move_if_noexcept [_First, _Last) to raw _Dest, using allocator -; 1674 : _Umove_if_noexcept1(_First, _Last, _Dest, +; 1606 : // move_if_noexcept [_First, _Last) to raw _Dest, using allocator +; 1607 : _Umove_if_noexcept1(_First, _Last, _Dest, - 0002e 48 8d 85 c4 00 + 00045 48 8d 85 c4 00 00 00 lea rax, QWORD PTR $T1[rbp] - 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 + 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 00 00 movzx eax, BYTE PTR $T1[rbp] - 00048 88 44 24 20 mov BYTE PTR [rsp+32], al - 0004c 4c 8b 8d 18 01 + 0005f 88 44 24 20 mov BYTE PTR [rsp+32], al + 00063 4c 8b 8d 18 01 00 00 mov r9, QWORD PTR _Dest$[rbp] - 00053 4c 8b 85 10 01 + 0006a 4c 8b 85 10 01 00 00 mov r8, QWORD PTR _Last$[rbp] - 0005a 48 8b 95 08 01 + 00071 48 8b 95 08 01 00 00 mov rdx, QWORD PTR _First$[rbp] - 00061 48 8b 8d 00 01 + 00078 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 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 + 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 -; 1675 : bool_constant, negation>>>{}); -; 1676 : } +; 1608 : bool_constant, negation>>>{}); +; 1609 : } - 0006d 48 8d a5 e8 00 + 00084 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 + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ?_Umove_if_noexcept1@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK00U?$integral_constant@_N$00@2@@Z _TEXT SEGMENT this$ = 224 @@ -14598,7 +15095,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 -; 1662 : _CONSTEXPR20_CONTAINER void _Umove_if_noexcept1(pointer _First, pointer _Last, pointer _Dest, true_type) { +; 1595 : 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 @@ -14610,36 +15107,42 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 1663 : // move [_First, _Last) to raw _Dest, using allocator -; 1664 : _Uninitialized_move(_First, _Last, _Dest, _Getal()); +; 1596 : // move [_First, _Last) to raw _Dest, using allocator +; 1597 : _Uninitialized_move(_First, _Last, _Dest, _Getal()); - 0002e 48 8b 8d e0 00 + 00045 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 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 + 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 00 00 mov r8, QWORD PTR _Dest$[rbp] - 00044 48 8b 95 f0 00 + 0005b 48 8b 95 f0 00 00 00 mov rdx, QWORD PTR _Last$[rbp] - 0004b 48 8b 8d e8 00 + 00062 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _First$[rbp] - 00052 e8 00 00 00 00 call ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z ; std::_Uninitialized_move > + 00069 e8 00 00 00 00 call ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z ; std::_Uninitialized_move > -; 1665 : } +; 1598 : } - 00057 48 8d a5 c8 00 + 0006e 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 + 00075 5f pop rdi + 00076 5d pop rbp + 00077 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z _TEXT SEGMENT this$ = 224 @@ -14648,7 +15151,7 @@ _Last$ = 240 _Dest$ = 248 ?_Umove@?$vector@KV?$allocator@K@std@@@std@@AEAAPEAKPEAK00@Z PROC ; std::vector >::_Umove, COMDAT -; 1657 : _CONSTEXPR20_CONTAINER pointer _Umove(pointer _First, pointer _Last, pointer _Dest) { +; 1591 : pointer _Umove(pointer _First, pointer _Last, pointer _Dest) { // move [_First, _Last) to raw _Dest, using allocator $LN3: 00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9 @@ -14660,43 +15163,48 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 1658 : // move [_First, _Last) to raw _Dest, using allocator -; 1659 : return _Uninitialized_move(_First, _Last, _Dest, _Getal()); +; 1592 : return _Uninitialized_move(_First, _Last, _Dest, _Getal()); - 0002e 48 8b 8d e0 00 + 00045 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 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 + 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 00 00 mov r8, QWORD PTR _Dest$[rbp] - 00044 48 8b 95 f0 00 + 0005b 48 8b 95 f0 00 00 00 mov rdx, QWORD PTR _Last$[rbp] - 0004b 48 8b 8d e8 00 + 00062 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _First$[rbp] - 00052 e8 00 00 00 00 call ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z ; std::_Uninitialized_move > + 00069 e8 00 00 00 00 call ??$_Uninitialized_move@PEAKV?$allocator@K@std@@@std@@YAPEAKQEAK0PEAKAEAV?$allocator@K@0@@Z ; std::_Uninitialized_move > -; 1660 : } +; 1593 : } - 00057 48 8d a5 c8 00 + 0006e 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 + 00075 5f pop rdi + 00076 5d pop rbp + 00077 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 1557 : _NODISCARD _CONSTEXPR20_CONTAINER size_type capacity() const noexcept { +; 1492 : _NODISCARD size_type capacity() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -14705,36 +15213,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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 1558 : auto& _My_data = _Mypair._Myval2; +; 1493 : auto& _My_data = _Mypair._Myval2; - 0001f 48 8b 85 00 01 + 00036 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1559 : return static_cast(_My_data._Myend - _My_data._Myfirst); +; 1494 : return static_cast(_My_data._Myend - _My_data._Myfirst); - 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 + 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 -; 1560 : } +; 1495 : } - 00041 48 8d a5 e8 00 + 00058 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 0005f 5f pop rdi + 00060 5d pop rbp + 00061 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ _TEXT SEGMENT $T1 = 200 @@ -14742,7 +15256,7 @@ $T2 = 232 this$ = 288 ?max_size@?$vector@KV?$allocator@K@std@@@std@@QEBA_KXZ PROC ; std::vector >::max_size, COMDAT -; 1552 : _NODISCARD _CONSTEXPR20_CONTAINER size_type max_size() const noexcept { +; 1487 : _NODISCARD size_type max_size() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -14751,48 +15265,54 @@ $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 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 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 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 + 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 00 00 mov QWORD PTR $T1[rbp], rax - 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 + 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 00 00 mov QWORD PTR $T2[rbp], rax - 00046 48 8d 95 c8 00 + 0005d 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 0004d 48 8d 8d e8 00 + 00064 48 8d 8d e8 00 00 00 lea rcx, QWORD PTR $T2[rbp] - 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] + 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] -; 1554 : static_cast((numeric_limits::max)()), _Alty_traits::max_size(_Getal())); -; 1555 : } +; 1489 : static_cast((numeric_limits::max)()), _Alty_traits::max_size(_Getal())); +; 1490 : } - 0005c 48 8d a5 08 01 + 00073 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 00063 5f pop rdi - 00064 5d pop rbp - 00065 c3 ret 0 + 0007a 5f pop rdi + 0007b 5d pop rbp + 0007c 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 1547 : _NODISCARD _CONSTEXPR20_CONTAINER size_type size() const noexcept { +; 1482 : _NODISCARD size_type size() const noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -14801,42 +15321,48 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 1548 : auto& _My_data = _Mypair._Myval2; +; 1483 : auto& _My_data = _Mypair._Myval2; - 0001f 48 8b 85 00 01 + 00036 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1549 : return static_cast(_My_data._Mylast - _My_data._Myfirst); +; 1484 : return static_cast(_My_data._Mylast - _My_data._Myfirst); - 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 + 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 -; 1550 : } +; 1485 : } - 00041 48 8d a5 e8 00 + 00058 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00048 5f pop rdi - 00049 5d pop rbp - 0004a c3 ret 0 + 0005f 5f pop rdi + 00060 5d pop rbp + 00061 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 1534 : _NODISCARD _CONSTEXPR20_CONTAINER pointer _Unchecked_end() noexcept { +; 1469 : pointer _Unchecked_end() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -14845,33 +15371,39 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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; -; 1535 : return _Mypair._Myval2._Mylast; - - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 0003d 48 8b 40 10 mov rax, QWORD PTR [rax+16] -; 1536 : } +; 1471 : } - 0002a 48 8d a5 c8 00 + 00041 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 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 1526 : _NODISCARD _CONSTEXPR20_CONTAINER pointer _Unchecked_begin() noexcept { +; 1461 : pointer _Unchecked_begin() noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -14880,27 +15412,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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__092B7E84_vector - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1527 : return _Mypair._Myval2._Myfirst; + 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; - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0003d 48 8b 40 08 mov rax, QWORD PTR [rax+8] -; 1528 : } +; 1463 : } - 0002a 48 8d a5 c8 00 + 00041 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 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -14910,7 +15448,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 -; 1484 : _NODISCARD _CONSTEXPR20_CONTAINER iterator end() noexcept { +; 1419 : _NODISCARD iterator end() noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -14920,47 +15458,53 @@ $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 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 00042 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1486 : return iterator(_My_data._Mylast, _STD addressof(_My_data)); +; 1421 : return iterator(_My_data._Mylast, _STD addressof(_My_data)); - 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 + 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 00 00 mov QWORD PTR tv80[rbp], rax - 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 + 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 00 00 mov QWORD PTR tv78[rbp], rax - 0004e 4c 8b 85 d8 00 + 00065 4c 8b 85 d8 00 00 00 mov r8, QWORD PTR tv80[rbp] - 00055 48 8b 95 e0 00 + 0006c 48 8b 95 e0 00 00 00 mov rdx, QWORD PTR tv78[rbp] - 0005c 48 8b 8d 18 01 + 00073 48 8b 8d 18 01 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] - 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 + 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 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] -; 1487 : } +; 1422 : } - 0006f 48 8d a5 f8 00 + 00086 48 8d a5 f8 00 00 00 lea rsp, QWORD PTR [rbp+248] - 00076 5f pop rdi - 00077 5d pop rbp - 00078 c3 ret 0 + 0008d 5f pop rdi + 0008e 5d pop rbp + 0008f 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -14970,7 +15514,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 -; 1474 : _NODISCARD _CONSTEXPR20_CONTAINER iterator begin() noexcept { +; 1409 : _NODISCARD iterator begin() noexcept { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -14980,47 +15524,53 @@ $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 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 00042 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1476 : return iterator(_My_data._Myfirst, _STD addressof(_My_data)); +; 1411 : return iterator(_My_data._Myfirst, _STD addressof(_My_data)); - 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 + 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 00 00 mov QWORD PTR tv80[rbp], rax - 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 + 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 00 00 mov QWORD PTR tv78[rbp], rax - 0004e 4c 8b 85 d8 00 + 00065 4c 8b 85 d8 00 00 00 mov r8, QWORD PTR tv80[rbp] - 00055 48 8b 95 e0 00 + 0006c 48 8b 95 e0 00 00 00 mov rdx, QWORD PTR tv78[rbp] - 0005c 48 8b 8d 18 01 + 00073 48 8b 8d 18 01 00 00 mov rcx, QWORD PTR __$ReturnUdt$[rbp] - 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 + 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 00 00 mov rax, QWORD PTR __$ReturnUdt$[rbp] -; 1477 : } +; 1412 : } - 0006f 48 8d a5 f8 00 + 00086 48 8d a5 f8 00 00 00 lea rsp, QWORD PTR [rbp+248] - 00076 5f pop rdi - 00077 5d pop rbp - 00078 c3 ret 0 + 0008d 5f pop rdi + 0008e 5d pop rbp + 0008f 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ _TEXT SEGMENT _My_data$ = 8 @@ -15029,7 +15579,7 @@ _Mylast$ = 72 this$ = 320 ?clear@?$vector@KV?$allocator@K@std@@@std@@QEAAXXZ PROC ; std::vector >::clear, COMDAT -; 1449 : _CONSTEXPR20_CONTAINER void clear() noexcept { // erase all +; 1383 : void clear() noexcept { // erase all $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15038,69 +15588,75 @@ $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 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax -; 1451 : pointer& _Myfirst = _My_data._Myfirst; +; 1385 : 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 + 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 -; 1452 : pointer& _Mylast = _My_data._Mylast; +; 1386 : 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 + 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 -; 1453 : -; 1454 : _My_data._Orphan_all(); +; 1387 : +; 1388 : _My_data._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 + 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 -; 1455 : _Destroy(_Myfirst, _Mylast); +; 1389 : _Destroy(_Myfirst, _Mylast); - 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 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00060 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy + 00077 e8 00 00 00 00 call ?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z ; std::vector >::_Destroy -; 1456 : _Mylast = _Myfirst; +; 1390 : _Mylast = _Myfirst; - 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 + 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 -; 1457 : } +; 1391 : } - 00073 48 8d a5 28 01 + 0008a 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 0007a 5f pop rdi - 0007b 5d pop rbp - 0007c c3 ret 0 + 00091 5f pop rdi + 00092 5d pop rbp + 00093 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 755 : _CONSTEXPR20_CONTAINER void push_back(const _Ty& _Val) { // insert element at end, provide strong guarantee +; 716 : 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 @@ -15110,29 +15666,35 @@ $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 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 + 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 00 00 mov rdx, QWORD PTR _Val$[rbp] - 0002b 48 8b 8d e0 00 + 00042 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00032 e8 00 00 00 00 call ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA?A_TAEBK@Z ; std::vector >::emplace_back + 00049 e8 00 00 00 00 call ??$emplace_back@AEBK@?$vector@KV?$allocator@K@std@@@std@@QEAA@AEBK@Z ; std::vector >::emplace_back -; 757 : } +; 718 : } - 00037 48 8d a5 c8 00 + 0004e 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 + 00055 5f pop rdi + 00056 5d pop rbp + 00057 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.29.30037\include\vector +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vector ; COMDAT ??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ _TEXT SEGMENT $T1 = 196 @@ -15142,7 +15704,7 @@ tv69 = 248 this$ = 288 ??0?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::vector >::vector >, COMDAT -; 476 : : _Mypair(_Zero_then_variadic_args_t{}) { +; 445 : vector() noexcept(is_nothrow_default_constructible_v<_Alty>) : _Mypair(_Zero_then_variadic_args_t{}) { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15151,56 +15713,62 @@ $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 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 89 85 f8 00 + 0003d 48 89 85 f8 00 00 00 mov QWORD PTR tv69[rbp], rax - 0002d 0f b6 95 c4 00 + 00044 0f b6 95 c4 00 00 00 movzx edx, BYTE PTR $T1[rbp] - 00034 48 8b 8d f8 00 + 0004b 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR tv69[rbp] - 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><> + 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><> -; 477 : _Mypair._Myval2._Alloc_proxy(_GET_PROXY_ALLOCATOR(_Alty, _Getal())); +; 446 : _Mypair._Myval2._Alloc_proxy(_GET_PROXY_ALLOCATOR(_Alty, _Getal())); - 00040 48 8b 85 20 01 + 00057 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00047 48 89 85 f8 00 + 0005e 48 89 85 f8 00 00 00 mov QWORD PTR tv83[rbp], rax - 0004e 48 8b 8d 20 01 + 00065 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR this$[rbp] - 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 + 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 00 00 lea rcx, QWORD PTR $T2[rbp] - 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 + 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 00 00 mov rcx, QWORD PTR tv83[rbp] - 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 > + 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 > -; 478 : } +; 447 : } - 00078 48 8b 85 20 01 + 0008f 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 0007f 48 8d a5 08 01 + 00096 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 00086 5f pop rdi - 00087 5d pop rbp - 00088 c3 ret 0 + 0009d 5f pop rdi + 0009e 5d pop rbp + 0009f 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.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 727 : _NODISCARD static _CONSTEXPR20_DYNALLOC size_type max_size(const _Alloc&) noexcept { +; 702 : _NODISCARD static size_type max_size(const _Alloc&) noexcept { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15209,33 +15777,39 @@ $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 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 + 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 ff ff ff ff 3f mov rax, 4611686018427387903 ; 3fffffffffffffffH -; 729 : } +; 704 : } - 00029 48 8d a5 c8 00 + 00040 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 + 00047 5f pop rdi + 00048 5d pop rbp + 00049 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.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 838 : _NODISCARD _CONSTEXPR20_DYNALLOC __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { +; 806 : _NODISCARD __declspec(allocator) _Ty* allocate(_CRT_GUARDOVERFLOW const size_t _Count) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -15245,29 +15819,35 @@ $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 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 + 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 00 00 mov rcx, QWORD PTR _Count$[rbp] - 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> + 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> -; 840 : } +; 808 : } - 00038 48 8d a5 c8 00 + 0004f 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 + 00056 5f pop rdi + 00057 5d pop rbp + 00058 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.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z _TEXT SEGMENT this$ = 224 @@ -15275,7 +15855,7 @@ _Ptr$ = 232 _Count$ = 240 ?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z PROC ; std::allocator::deallocate, COMDAT -; 833 : _CONSTEXPR20_DYNALLOC void deallocate(_Ty* const _Ptr, const size_t _Count) { +; 801 : void deallocate(_Ty* const _Ptr, const size_t _Count) { $LN3: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -15286,38 +15866,44 @@ $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 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 + 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 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 + 00047 48 c1 e0 02 shl rax, 2 + 0004b 48 8b d0 mov rdx, rax + 0004e 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> + 00055 e8 00 00 00 00 call ??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z ; std::_Deallocate<16,0> -; 836 : } +; 804 : } - 00043 48 8d a5 c8 00 + 0005a 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 + 00061 5f pop rdi + 00062 5d pop rbp + 00063 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.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??0?$allocator@K@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 ??0?$allocator@K@std@@QEAA@XZ PROC ; std::allocator::allocator, COMDAT -; 825 : constexpr allocator() noexcept {} +; 795 : constexpr allocator() noexcept {} $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -15326,16 +15912,22 @@ $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 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8d a5 c8 00 + 0003d 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 + 00044 5f pop rdi + 00045 5d pop rbp + 00046 c3 ret 0 ??0?$allocator@K@std@@QEAA@XZ ENDP ; std::allocator::allocator _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -15352,30 +15944,36 @@ $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 8d e0 00 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0001e e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK - 00023 8b 85 e8 00 00 + 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 00 mov eax, DWORD PTR __flags$[rbp] - 00029 83 e0 01 and eax, 1 - 0002c 85 c0 test eax, eax - 0002e 74 11 je SHORT $LN2@scalar - 00030 ba f0 00 00 00 mov edx, 240 ; 000000f0H - 00035 48 8b 8d e0 00 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00041 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d a5 c8 00 + 0005f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 + 00066 5f pop rdi + 00067 5d pop rbp + 00068 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:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ??1_NATIVE_CODE_LINK@@QEAA@XZ _TEXT SEGMENT $T1 = 200 @@ -15391,41 +15989,48 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 39 : if (RawData) - 0001f 48 8b 85 00 01 + 00036 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 83 78 20 00 cmp QWORD PTR [rax+32], 0 - 0002b 74 23 je SHORT $LN2@NATIVE_COD + 0003d 48 83 78 20 00 cmp QWORD PTR [rax+32], 0 + 00042 74 24 je SHORT $LN2@NATIVE_COD ; 40 : delete RawData; - 0002d 48 8b 85 00 01 + 00044 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00034 48 8b 40 20 mov rax, QWORD PTR [rax+32] - 00038 48 89 85 c8 00 + 0004b 48 8b 40 20 mov rax, QWORD PTR [rax+32] + 0004f 48 89 85 c8 00 00 00 mov QWORD PTR $T1[rbp], rax - 0003f ba 01 00 00 00 mov edx, 1 - 00044 48 8b 8d c8 00 + 00056 ba 01 00 00 00 mov edx, 1 + 0005b 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR $T1[rbp] - 0004b e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00062 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00067 90 npad 1 $LN2@NATIVE_COD: ; 41 : } - 00050 48 8d a5 e8 00 + 00068 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 + 0006f 5f pop rdi + 00070 5d pop rbp + 00071 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:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z _TEXT SEGMENT $T1 = 200 @@ -15448,98 +16053,104 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 00028 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 24 : : _NATIVE_CODE_LINK() - 0002d 48 8b 8d 00 01 + 00044 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00034 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK - 00039 90 npad 1 + 0004b e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00050 90 npad 1 ; 26 : Flags = F; - 0003a 48 8b 85 00 01 + 00051 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00041 8b 8d 08 01 00 + 00058 8b 8d 08 01 00 00 mov ecx, DWORD PTR F$[rbp] - 00047 89 48 18 mov DWORD PTR [rax+24], ecx + 0005e 89 48 18 mov DWORD PTR [rax+24], ecx ; 27 : RawDataSize = Rds; - 0004a 48 8b 85 00 01 + 00061 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00051 8b 8d 18 01 00 + 00068 8b 8d 18 01 00 00 mov ecx, DWORD PTR Rds$[rbp] - 00057 89 48 28 mov DWORD PTR [rax+40], ecx + 0006e 89 48 28 mov DWORD PTR [rax+40], ecx ; 28 : RawData = new UCHAR[Rds]; - 0005a 8b 85 18 01 00 + 00071 8b 85 18 01 00 00 mov eax, DWORD PTR Rds$[rbp] - 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 + 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 00 00 mov QWORD PTR $T1[rbp], rax - 0006e 48 8b 85 00 01 + 00085 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 00075 48 8b 8d c8 00 + 0008c 48 8b 8d c8 00 00 00 mov rcx, QWORD PTR $T1[rbp] - 0007c 48 89 48 20 mov QWORD PTR [rax+32], rcx + 00093 48 89 48 20 mov QWORD PTR [rax+32], rcx ; 29 : if (Rd) - 00080 48 83 bd 10 01 + 00097 48 83 bd 10 01 00 00 00 cmp QWORD PTR Rd$[rbp], 0 - 00088 74 53 je SHORT $LN2@NATIVE_COD + 0009f 74 53 je SHORT $LN2@NATIVE_COD ; 30 : { ; 31 : RtlCopyMemory(RawData, Rd, Rds); - 0008a 8b 85 18 01 00 + 000a1 8b 85 18 01 00 00 mov eax, DWORD PTR Rds$[rbp] - 00090 44 8b c0 mov r8d, eax - 00093 48 8b 95 10 01 + 000a7 44 8b c0 mov r8d, eax + 000aa 48 8b 95 10 01 00 00 mov rdx, QWORD PTR Rd$[rbp] - 0009a 48 8b 85 00 01 + 000b1 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000a1 48 8b 48 20 mov rcx, QWORD PTR [rax+32] - 000a5 e8 00 00 00 00 call memcpy + 000b8 48 8b 48 20 mov rcx, QWORD PTR [rax+32] + 000bc e8 00 00 00 00 call memcpy ; 32 : if (Decode) - 000aa 83 bd 20 01 00 + 000c1 83 bd 20 01 00 00 00 cmp DWORD PTR Decode$[rbp], 0 - 000b1 74 2a je SHORT $LN2@NATIVE_COD + 000c8 74 2a je SHORT $LN2@NATIVE_COD ; 33 : XedDecode(&XedInstruction, RawData, RawDataSize); - 000b3 48 8b 85 00 01 + 000ca 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000ba 48 83 c0 30 add rax, 48 ; 00000030H - 000be 48 8b 8d 00 01 + 000d1 48 83 c0 30 add rax, 48 ; 00000030H + 000d5 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000c5 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 000c9 48 8b 8d 00 01 + 000dc 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 000e0 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 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 + 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 $LN2@NATIVE_COD: ; 34 : } ; 35 : } - 000dd 48 8b 85 00 01 + 000f4 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 000e4 48 8d a5 e8 00 + 000fb 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 000eb 5f pop rdi - 000ec 5d pop rbp - 000ed c3 ret 0 + 00102 5f pop rdi + 00103 5d pop rbp + 00104 c3 ret 0 ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z ENDP ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK _TEXT ENDS ; COMDAT text$x @@ -15592,7 +16203,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:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ??0_NATIVE_CODE_LINK@@QEAA@KPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT this$ = 224 @@ -15611,52 +16222,58 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 00023 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 16 : : _NATIVE_CODE_LINK() - 00028 48 8b 8d e0 00 + 0003f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0002f e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK + 00046 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK ; 18 : Block = B; - 00034 48 8b 85 e0 00 + 0004b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003b 48 8b 8d f0 00 + 00052 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR B$[rbp] - 00042 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00059 48 89 48 10 mov QWORD PTR [rax+16], rcx ; 19 : Label = LabelId; - 00046 48 8b 85 e0 00 + 0005d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004d 8b 8d e8 00 00 + 00064 8b 8d e8 00 00 00 mov ecx, DWORD PTR LabelId$[rbp] - 00053 89 48 1c mov DWORD PTR [rax+28], ecx + 0006a 89 48 1c mov DWORD PTR [rax+28], ecx ; 20 : Flags = CODE_FLAG_IS_LABEL; - 00056 48 8b 85 e0 00 + 0006d 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005d c7 40 18 01 00 + 00074 c7 40 18 01 00 00 00 mov DWORD PTR [rax+24], 1 ; 21 : } - 00064 48 8b 85 e0 00 + 0007b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0006b 48 8d a5 c8 00 + 00082 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 + 00089 5f pop rdi + 0008a 5d pop rbp + 0008b 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:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ??0_NATIVE_CODE_LINK@@QEAA@XZ _TEXT SEGMENT this$ = 224 @@ -15671,88 +16288,94 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__337731E1_NativeCode@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 5 : XedDecodedInstZero(&XedInstruction); - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 83 c0 30 add rax, 48 ; 00000030H - 0002a 48 8b c8 mov rcx, rax - 0002d e8 00 00 00 00 call xed_decoded_inst_zero + 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 ; 6 : XedDecodedInstSetMode(&XedInstruction, XED_MACHINE_MODE_LONG_64, XED_ADDRESS_WIDTH_64b); - 00032 48 8b 85 e0 00 + 00049 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00039 48 83 c0 30 add rax, 48 ; 00000030H - 0003d 41 b8 08 00 00 + 00050 48 83 c0 30 add rax, 48 ; 00000030H + 00054 41 b8 08 00 00 00 mov r8d, 8 - 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 + 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 ; 7 : Flags = 0UL; - 00050 48 8b 85 e0 00 + 00067 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00057 c7 40 18 00 00 + 0006e c7 40 18 00 00 00 00 mov DWORD PTR [rax+24], 0 ; 8 : Next = Prev = NULL; - 0005e 48 8b 85 e0 00 + 00075 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00065 48 c7 40 08 00 + 0007c 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 0006d 48 8b 85 e0 00 + 00084 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00074 48 c7 00 00 00 + 0008b 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 ; 9 : Block = NULL; - 0007b 48 8b 85 e0 00 + 00092 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00082 48 c7 40 10 00 + 00099 48 c7 40 10 00 00 00 00 mov QWORD PTR [rax+16], 0 ; 10 : Label = 0UL; - 0008a 48 8b 85 e0 00 + 000a1 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00091 c7 40 1c 00 00 + 000a8 c7 40 1c 00 00 00 00 mov DWORD PTR [rax+28], 0 ; 11 : RawData = NULL; - 00098 48 8b 85 e0 00 + 000af 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0009f 48 c7 40 20 00 + 000b6 48 c7 40 20 00 00 00 00 mov QWORD PTR [rax+32], 0 ; 12 : RawDataSize = 0UL; - 000a7 48 8b 85 e0 00 + 000be 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 000ae c7 40 28 00 00 + 000c5 c7 40 28 00 00 00 00 mov DWORD PTR [rax+40], 0 ; 13 : } - 000b5 48 8b 85 e0 00 + 000cc 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 000bc 48 8d a5 c8 00 + 000d3 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 000c3 5f pop rdi - 000c4 5d pop rbp - 000c5 c3 ret 0 + 000da 5f pop rdi + 000db 5d pop rbp + 000dc 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:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_get_length _TEXT SEGMENT p$ = 224 @@ -15766,28 +16389,34 @@ 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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0AA8C18B_xed-decoded-inst-api@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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:__5981B539_xed-decoded-inst-api@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 283 : return p->_decoded_length; - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 00026 0f b6 80 a6 00 + 0003d 0f b6 80 a6 00 00 00 movzx eax, BYTE PTR [rax+166] ; 284 : } - 0002d 48 8d a5 c8 00 + 00044 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00034 5f pop rdi - 00035 5d pop rbp - 00036 c3 ret 0 + 0004b 5f pop rdi + 0004c 5d pop rbp + 0004d c3 ret 0 xed_decoded_inst_get_length ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_set_mode _TEXT SEGMENT dstate$ = 8 @@ -15807,60 +16436,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 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 + 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] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 d8 00 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 d8 00 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 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 + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__5981B539_xed-decoded-inst-api@h + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 260 : xed_state_t dstate; ; 261 : dstate.mmode = mmode; - 00052 8b 85 08 01 00 + 00050 8b 85 08 01 00 00 mov eax, DWORD PTR mmode$[rbp] - 00058 89 45 08 mov DWORD PTR dstate$[rbp], eax + 00056 89 45 08 mov DWORD PTR dstate$[rbp], eax ; 262 : dstate.stack_addr_width = stack_addr_width; - 0005b 8b 85 10 01 00 + 00059 8b 85 10 01 00 00 mov eax, DWORD PTR stack_addr_width$[rbp] - 00061 89 45 0c mov DWORD PTR dstate$[rbp+4], eax + 0005f 89 45 0c mov DWORD PTR dstate$[rbp+4], eax ; 263 : xed_operand_values_set_mode(p, &dstate); - 00064 48 8d 55 08 lea rdx, QWORD PTR dstate$[rbp] - 00068 48 8b 8d 00 01 + 00062 48 8d 55 08 lea rdx, QWORD PTR dstate$[rbp] + 00066 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR p$[rbp] - 0006f e8 00 00 00 00 call xed_operand_values_set_mode + 0006d e8 00 00 00 00 call xed_operand_values_set_mode ; 264 : } - 00074 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 00078 48 8d 15 00 00 + 00072 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 00076 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:xed_decoded_inst_set_mode$rtcFrameData - 0007f e8 00 00 00 00 call _RTC_CheckStackVars - 00084 48 8b 8d d8 00 + 0007d e8 00 00 00 00 call _RTC_CheckStackVars + 00082 48 8b 8d d8 00 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0008b 48 33 cd xor rcx, rbp - 0008e e8 00 00 00 00 call __security_check_cookie - 00093 48 8d a5 e8 00 + 00089 48 33 cd xor rcx, rbp + 0008c e8 00 00 00 00 call __security_check_cookie + 00091 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0009a 5f pop rdi - 0009b 5d pop rbp - 0009c c3 ret 0 + 00098 5f pop rdi + 00099 5d pop rbp + 0009a c3 ret 0 xed_decoded_inst_set_mode ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_noperands _TEXT SEGMENT noperands$ = 4 @@ -15875,34 +16504,40 @@ 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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0AA8C18B_xed-decoded-inst-api@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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:__5981B539_xed-decoded-inst-api@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 171 : unsigned int noperands = xed_inst_noperands(xed_decoded_inst_inst(p)); - 0001f 48 8b 8d 00 01 + 00036 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR p$[rbp] - 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 + 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 ; 172 : return noperands; - 00036 8b 45 04 mov eax, DWORD PTR noperands$[rbp] + 0004d 8b 45 04 mov eax, DWORD PTR noperands$[rbp] ; 173 : } - 00039 48 8d a5 e8 00 + 00050 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 00040 5f pop rdi - 00041 5d pop rbp - 00042 c3 ret 0 + 00057 5f pop rdi + 00058 5d pop rbp + 00059 c3 ret 0 xed_decoded_inst_noperands ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_get_iclass _TEXT SEGMENT p$ = 224 @@ -15916,36 +16551,42 @@ 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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0AA8C18B_xed-decoded-inst-api@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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:__5981B539_xed-decoded-inst-api@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode $LN4@xed_decode: ; 76 : xed_assert(p->_inst != 0); - 0001f 33 c0 xor eax, eax - 00021 85 c0 test eax, eax - 00023 75 fa jne SHORT $LN4@xed_decode + 00036 33 c0 xor eax, eax + 00038 85 c0 test eax, eax + 0003a 75 fa jne SHORT $LN4@xed_decode ; 77 : return xed_inst_iclass(p->_inst); - 00025 48 8b 85 e0 00 + 0003c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 0002c 48 8b 88 a8 00 + 00043 48 8b 88 a8 00 00 00 mov rcx, QWORD PTR [rax+168] - 00033 e8 00 00 00 00 call xed_inst_iclass + 0004a e8 00 00 00 00 call xed_inst_iclass ; 78 : } - 00038 48 8d a5 c8 00 + 0004f 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 + 00056 5f pop rdi + 00057 5d pop rbp + 00058 c3 ret 0 xed_decoded_inst_get_iclass ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_get_category _TEXT SEGMENT p$ = 224 @@ -15959,36 +16600,42 @@ 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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0AA8C18B_xed-decoded-inst-api@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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:__5981B539_xed-decoded-inst-api@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode $LN4@xed_decode: ; 55 : xed_assert(p->_inst != 0); - 0001f 33 c0 xor eax, eax - 00021 85 c0 test eax, eax - 00023 75 fa jne SHORT $LN4@xed_decode + 00036 33 c0 xor eax, eax + 00038 85 c0 test eax, eax + 0003a 75 fa jne SHORT $LN4@xed_decode ; 56 : return xed_inst_category(p->_inst); - 00025 48 8b 85 e0 00 + 0003c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 0002c 48 8b 88 a8 00 + 00043 48 8b 88 a8 00 00 00 mov rcx, QWORD PTR [rax+168] - 00033 e8 00 00 00 00 call xed_inst_category + 0004a e8 00 00 00 00 call xed_inst_category ; 57 : } - 00038 48 8d a5 c8 00 + 0004f 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 + 00056 5f pop rdi + 00057 5d pop rbp + 00058 c3 ret 0 xed_decoded_inst_get_category ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-decoded-inst-api.h ; COMDAT xed_decoded_inst_inst _TEXT SEGMENT p$ = 224 @@ -16002,28 +16649,34 @@ 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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__0AA8C18B_xed-decoded-inst-api@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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:__5981B539_xed-decoded-inst-api@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 47 : return p->_inst; - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 00026 48 8b 80 a8 00 + 0003d 48 8b 80 a8 00 00 00 mov rax, QWORD PTR [rax+168] ; 48 : } - 0002d 48 8d a5 c8 00 + 00044 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00034 5f pop rdi - 00035 5d pop rbp - 00036 c3 ret 0 + 0004b 5f pop rdi + 0004c 5d pop rbp + 0004d c3 ret 0 xed_decoded_inst_inst ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h ; COMDAT xed_inst1 _TEXT SEGMENT inst$ = 224 @@ -16045,80 +16698,86 @@ 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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1C89993E_xed-encoder-hl@h - 0002a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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:__CDA14B9B_xed-encoder-hl@h + 00041 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 491 : ; 492 : inst->mode=mode; - 0002f 48 8b 85 e0 00 + 00046 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 00036 48 8b 8d e8 00 + 0004d 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR mode$[rbp] - 0003d 48 89 08 mov QWORD PTR [rax], rcx + 00054 48 89 08 mov QWORD PTR [rax], rcx ; 493 : inst->iclass = iclass; - 00040 48 8b 85 e0 00 + 00057 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 00047 8b 8d f0 00 00 + 0005e 8b 8d f0 00 00 00 mov ecx, DWORD PTR iclass$[rbp] - 0004d 89 48 08 mov DWORD PTR [rax+8], ecx + 00064 89 48 08 mov DWORD PTR [rax+8], ecx ; 494 : inst->effective_operand_width = effective_operand_width; - 00050 48 8b 85 e0 00 + 00067 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 00057 8b 8d f8 00 00 + 0006e 8b 8d f8 00 00 00 mov ecx, DWORD PTR effective_operand_width$[rbp] - 0005d 89 48 0c mov DWORD PTR [rax+12], ecx + 00074 89 48 0c mov DWORD PTR [rax+12], ecx ; 495 : inst->effective_address_width = 0; - 00060 48 8b 85 e0 00 + 00077 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 00067 c7 40 10 00 00 + 0007e c7 40 10 00 00 00 00 mov DWORD PTR [rax+16], 0 ; 496 : inst->prefixes.i = 0; - 0006e 48 8b 85 e0 00 + 00085 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 00075 c7 40 14 00 00 + 0008c c7 40 14 00 00 00 00 mov DWORD PTR [rax+20], 0 ; 497 : inst->operands[0] = op0; - 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 + 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 00 00 mov rcx, QWORD PTR inst$[rbp] - 0008c 48 8d 7c 01 20 lea rdi, QWORD PTR [rcx+rax+32] - 00091 48 8b b5 00 01 + 000a3 48 8d 7c 01 20 lea rdi, QWORD PTR [rcx+rax+32] + 000a8 48 8b b5 00 01 00 00 mov rsi, QWORD PTR op0$[rbp] - 00098 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0009d f3 a4 rep movsb + 000af b9 30 00 00 00 mov ecx, 48 ; 00000030H + 000b4 f3 a4 rep movsb ; 498 : inst->noperands = 1; - 0009f 48 8b 85 e0 00 + 000b6 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 000a6 c7 40 18 01 00 + 000bd c7 40 18 01 00 00 00 mov DWORD PTR [rax+24], 1 ; 499 : } - 000ad 48 8d a5 c0 00 + 000c4 48 8d a5 c0 00 00 00 lea rsp, QWORD PTR [rbp+192] - 000b4 5f pop rdi - 000b5 5e pop rsi - 000b6 5d pop rbp - 000b7 c3 ret 0 + 000cb 5f pop rdi + 000cc 5e pop rsi + 000cd 5d pop rbp + 000ce c3 ret 0 xed_inst1 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h ; COMDAT xed_relbr _TEXT SEGMENT o$ = 8 @@ -16139,72 +16798,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 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 + 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 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 08 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 08 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 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 + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__CDA14B9B_xed-encoder-hl@h + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 106 : xed_encoder_operand_t o; ; 107 : o.type = XED_ENCODER_OPERAND_TYPE_BRDISP; - 00053 c7 45 08 01 00 + 00051 c7 45 08 01 00 00 00 mov DWORD PTR o$[rbp], 1 ; 108 : o.u.brdisp = brdisp; - 0005a 8b 85 38 01 00 + 00058 8b 85 38 01 00 00 mov eax, DWORD PTR brdisp$[rbp] - 00060 89 45 10 mov DWORD PTR o$[rbp+8], eax + 0005e 89 45 10 mov DWORD PTR o$[rbp+8], eax ; 109 : o.width_bits = width_bits; - 00063 8b 85 40 01 00 + 00061 8b 85 40 01 00 00 mov eax, DWORD PTR width_bits$[rbp] - 00069 89 45 30 mov DWORD PTR o$[rbp+40], eax + 00067 89 45 30 mov DWORD PTR o$[rbp+40], eax ; 110 : return o; - 0006c 48 8d 45 08 lea rax, QWORD PTR o$[rbp] - 00070 48 8b bd 30 01 + 0006a 48 8d 45 08 lea rax, QWORD PTR o$[rbp] + 0006e 48 8b bd 30 01 00 00 mov rdi, QWORD PTR $T4[rbp] - 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 + 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 00 00 mov rax, QWORD PTR $T4[rbp] ; 111 : } - 00088 48 8b f8 mov rdi, rax - 0008b 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0008f 48 8d 15 00 00 + 00086 48 8b f8 mov rdi, rax + 00089 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0008d 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:xed_relbr$rtcFrameData - 00096 e8 00 00 00 00 call _RTC_CheckStackVars - 0009b 48 8b c7 mov rax, rdi - 0009e 48 8b 8d 08 01 + 00094 e8 00 00 00 00 call _RTC_CheckStackVars + 00099 48 8b c7 mov rax, rdi + 0009c 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000a5 48 33 cd xor rcx, rbp - 000a8 e8 00 00 00 00 call __security_check_cookie - 000ad 48 8d a5 10 01 + 000a3 48 33 cd xor rcx, rbp + 000a6 e8 00 00 00 00 call __security_check_cookie + 000ab 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 000b4 5f pop rdi - 000b5 5e pop rsi - 000b6 5d pop rbp - 000b7 c3 ret 0 + 000b2 5f pop rdi + 000b3 5e pop rsi + 000b4 5d pop rbp + 000b5 c3 ret 0 xed_relbr ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h ; COMDAT xed_inst_noperands _TEXT SEGMENT p$ = 224 @@ -16218,27 +16877,33 @@ 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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F5B5218E_xed-inst@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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:__5ABB6AAF_xed-inst@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 313 : return p->_noperands; - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 00026 0f b6 00 movzx eax, BYTE PTR [rax] + 0003d 0f b6 00 movzx eax, BYTE PTR [rax] ; 314 : } - 00029 48 8d a5 c8 00 + 00040 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 + 00047 5f pop rdi + 00048 5d pop rbp + 00049 c3 ret 0 xed_inst_noperands ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h ; COMDAT xed_inst_category _TEXT SEGMENT p$ = 224 @@ -16252,29 +16917,35 @@ 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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F5B5218E_xed-inst@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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:__5ABB6AAF_xed-inst@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 298 : return xed_iform_to_category(xed_inst_iform_enum(p)); - 0001f 48 8b 8d e0 00 + 00036 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR p$[rbp] - 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 + 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 ; 299 : } - 00032 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00039 5f pop rdi - 0003a 5d pop rbp - 0003b c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 xed_inst_category ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h ; COMDAT xed_inst_iclass _TEXT SEGMENT p$ = 224 @@ -16288,29 +16959,35 @@ 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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F5B5218E_xed-inst@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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:__5ABB6AAF_xed-inst@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 294 : return xed_iform_to_iclass(xed_inst_iform_enum(p)); - 0001f 48 8b 8d e0 00 + 00036 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR p$[rbp] - 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 + 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 ; 295 : } - 00032 48 8d a5 c8 00 + 00049 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00039 5f pop rdi - 0003a 5d pop rbp - 0003b c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 c3 ret 0 xed_inst_iclass ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h ; COMDAT xed_inst_iform_enum _TEXT SEGMENT p$ = 224 @@ -16324,27 +17001,33 @@ 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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F5B5218E_xed-inst@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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:__5ABB6AAF_xed-inst@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 290 : return (xed_iform_enum_t)p->_iform_enum; - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 00026 0f b7 40 06 movzx eax, WORD PTR [rax+6] + 0003d 0f b7 40 06 movzx eax, WORD PTR [rax+6] ; 291 : } - 0002a 48 8d a5 c8 00 + 00041 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 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 xed_inst_iform_enum ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-inst.h ; COMDAT xed_operand_type _TEXT SEGMENT p$ = 224 @@ -16358,27 +17041,33 @@ 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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F5B5218E_xed-inst@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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:__5ABB6AAF_xed-inst@h + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 97 : return (xed_operand_type_enum_t)p->_type; - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR p$[rbp] - 00026 0f b6 40 04 movzx eax, BYTE PTR [rax+4] + 0003d 0f b6 40 04 movzx eax, BYTE PTR [rax+4] ; 98 : } - 0002a 48 8d a5 c8 00 + 00041 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 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 xed_operand_type ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-iform-map.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-iform-map.h ; COMDAT xed_iform_to_iclass _TEXT SEGMENT ii$ = 8 @@ -16393,46 +17082,52 @@ 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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__F79B480A_xed-iform-map@h - 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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:__642E1CAE_xed-iform-map@h + 0002f e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 75 : const xed_iform_info_t* ii = xed_iform_map(iform); - 0001e 8b 8d 00 01 00 + 00034 8b 8d 00 01 00 00 mov ecx, DWORD PTR iform$[rbp] - 00024 e8 00 00 00 00 call xed_iform_map - 00029 48 89 45 08 mov QWORD PTR ii$[rbp], rax + 0003a e8 00 00 00 00 call xed_iform_map + 0003f 48 89 45 08 mov QWORD PTR ii$[rbp], rax ; 76 : if (ii) - 0002d 48 83 7d 08 00 cmp QWORD PTR ii$[rbp], 0 - 00032 74 0d je SHORT $LN2@xed_iform_ + 00043 48 83 7d 08 00 cmp QWORD PTR ii$[rbp], 0 + 00048 74 0d je SHORT $LN2@xed_iform_ ; 77 : return (xed_iclass_enum_t) ii->iclass; - 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_ + 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_ $LN2@xed_iform_: ; 78 : return XED_ICLASS_INVALID; - 00041 33 c0 xor eax, eax + 00057 33 c0 xor eax, eax $LN1@xed_iform_: ; 79 : } - 00043 48 8d a5 e8 00 + 00059 48 8d a5 e8 00 00 00 lea rsp, QWORD PTR [rbp+232] - 0004a 5f pop rdi - 0004b 5d pop rbp - 0004c c3 ret 0 + 00060 5f pop rdi + 00061 5d pop rbp + 00062 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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -16443,7 +17138,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -16455,141 +17150,147 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -16600,7 +17301,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -16612,141 +17313,147 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\ios +; 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 @@ -16761,36 +17468,42 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__FD1AE8DD_ios - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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); - 0001f 41 b8 00 0e 00 + 00036 41 b8 00 0e 00 00 mov r8d, 3584 ; 00000e00H - 00025 ba 00 08 00 00 mov edx, 2048 ; 00000800H - 0002a 48 8b 8d e0 00 + 0003c ba 00 08 00 00 mov edx, 2048 ; 00000800H + 00041 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _Iosbase$[rbp] - 00031 ff 15 00 00 00 + 00048 ff 15 00 00 00 00 call QWORD PTR __imp_?setf@ios_base@std@@QEAAHHH@Z ; 208 : return _Iosbase; - 00037 48 8b 85 e0 00 + 0004e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR _Iosbase$[rbp] ; 209 : } - 0003e 48 8d a5 c8 00 + 00055 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 + 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.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -16801,7 +17514,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -16812,98 +17525,104 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 523 : // convert C string to _Elem sequence using _Cvtvec -; 524 : size_t _Count = _CSTD strlen(_Ptr) + 1; +; 564 : // convert C string to _Elem sequence using _Cvtvec +; 565 : size_t _Count = _CSTD strlen(_Ptr) + 1; - 00029 48 8b 8d 40 01 + 00040 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 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 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 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 $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 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 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de 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.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -16920,73 +17639,79 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 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__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -17005,7 +17730,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : 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 @@ -17016,260 +17741,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 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 + 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 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 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 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 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 -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 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 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 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 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 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 -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 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 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 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.29.30037\include\xstring +; 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 _TEXT SEGMENT ?eof@?$_Narrow_char_traits@DH@std@@SAHXZ PROC ; std::_Narrow_char_traits::eof, COMDAT -; 477 : _NODISCARD static constexpr int_type eof() noexcept { +; 400 : _NODISCARD static constexpr int_type eof() noexcept { $LN3: 00000 40 55 push rbp @@ -17277,25 +18002,29 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A9EB37C6_xstring - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 478 : return static_cast(EOF); +; 401 : return static_cast(EOF); - 0001b b8 ff ff ff ff mov eax, -1 + 0002a b8 ff ff ff ff mov eax, -1 -; 479 : } +; 402 : } - 00020 48 8d a5 c8 00 + 0002f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00027 5f pop rdi - 00028 5d pop rbp - 00029 c3 ret 0 + 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 _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\xstring +; 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 _TEXT SEGMENT tv65 = 192 @@ -17303,7 +18032,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 -; 469 : _NODISCARD static constexpr bool eq_int_type(const int_type& _Left, const int_type& _Right) noexcept { +; 392 : _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 @@ -17313,49 +18042,55 @@ $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 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 + 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] - 0002b 48 8b 8d f8 00 + 00042 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _Right$[rbp] - 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 + 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 - 00042 eb 0a jmp SHORT $LN4@eq_int_typ + 00059 eb 0a jmp SHORT $LN4@eq_int_typ $LN3@eq_int_typ: - 00044 c7 85 c0 00 00 + 0005b c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv65[rbp], 0 $LN4@eq_int_typ: - 0004e 0f b6 85 c0 00 + 00065 0f b6 85 c0 00 00 00 movzx eax, BYTE PTR tv65[rbp] -; 471 : } +; 394 : } - 00055 48 8d a5 d8 00 + 0006c 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 0005c 5f pop rdi - 0005d 5d pop rbp - 0005e c3 ret 0 + 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 _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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; 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 -tv80 = 216 +tv78 = 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 -; 151 : is_nothrow_constructible_v<_Ty, _Types...>) { +; 228 : void _Construct_in_place(_Ty& _Obj, _Types&&... _Args) noexcept(is_nothrow_constructible_v<_Ty, _Types...>) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -17365,394 +18100,196 @@ $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 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 + 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 00 00 mov rcx, QWORD PTR _Obj$[rbp] - 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 + 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 00 00 mov QWORD PTR $T1[rbp], rax - 0004c 48 8b 8d 08 01 + 0005b 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR <_Args_0>$[rbp] - 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 + 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 00 00 mov rcx, QWORD PTR $T1[rbp] - 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 : } + 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 - 00075 48 8d a5 e8 00 +; 229 : ::new (const_cast(static_cast(_STD addressof(_Obj)))) +; 230 : _Ty(_STD forward<_Types>(_Args)...); +; 231 : } + + 00085 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 + 0008c 5f pop rdi + 0008d 5d pop rbp + 0008e 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.29.30037\include\xmemory -; COMDAT ?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ +; 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 _TEXT SEGMENT -_Lock$ = 4 -__$ArrayPad$ = 216 +_Pnext$1 = 8 this$ = 256 -?_Orphan_me_locked@_Iterator_base12@std@@AEAAXXZ PROC ; std::_Iterator_base12::_Orphan_me_locked, COMDAT - -; 1212 : void _Orphan_me_locked() noexcept { - -$LN3: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec 08 01 - 00 00 sub rsp, 264 ; 00000108H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 7c 24 20 lea rdi, QWORD PTR [rsp+32] - 00018 b9 0a 00 00 00 mov ecx, 10 - 0001d b8 cc cc cc cc mov eax, -858993460 ; ccccccccH - 00022 f3 ab rep stosd - 00024 48 8b 8c 24 28 - 01 00 00 mov rcx, QWORD PTR [rsp+296] - 0002c 48 8b 05 00 00 - 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 d8 00 - 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0003d 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 00044 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 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 +?_Orphan_me@_Iterator_base12@std@@QEAAXXZ PROC ; std::_Iterator_base12::_Orphan_me, COMDAT -; 1200 : _CONSTEXPR20_CONTAINER void _Orphan_me_unlocked() noexcept { +; 1184 : void _Orphan_me() noexcept { -$LN14: +$LN15: 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 + 00007 48 81 ec 18 01 + 00 00 sub rsp, 280 ; 00000118H 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 + 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 -; 1201 : _Iterator_base12** _Pnext = &_Myproxy->_Myfirstiter; +; 1186 : _Iterator_base12** _Pnext = &_Myproxy->_Myfirstiter; - 0001f 48 8b 85 20 01 + 00047 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$[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_ + 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: -; 1203 : const auto _Temp = *_Pnext; // TRANSITION, VSO-1269037 +; 1187 : while (*_Pnext && *_Pnext != this) { - 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 + 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 -; 1204 : _Pnext = &_Temp->_Mynextiter; +; 1188 : _Pnext = &(*_Pnext)->_Mynextiter; - 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 + 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 -; 1205 : } +; 1189 : } - 00062 eb cd jmp SHORT $LN2@Orphan_me_ -$LN6@Orphan_me_: + 00082 eb d5 jmp SHORT $LN2@Orphan_me +$LN6@Orphan_me: -; 1206 : -; 1207 : _STL_VERIFY(*_Pnext, "ITERATOR LIST CORRUPTED!"); +; 1190 : +; 1191 : _STL_VERIFY(*_Pnext, "ITERATOR LIST CORRUPTED!"); - 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 + 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 00 00 lea rax, OFFSET FLAT:??_C@_0BJ@LFDBABJJ@ITERATOR?5LIST?5CORRUPTED?$CB@ - 00077 48 89 44 24 28 mov QWORD PTR [rsp+40], rax - 0007c 48 8d 05 00 00 + 00097 48 89 44 24 28 mov QWORD PTR [rsp+40], rax + 0009c 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_02DKCKIIND@?$CFs@ - 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 + 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 00 call QWORD PTR __imp__CrtDbgReport - 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 + 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 00 00 00 00 mov QWORD PTR [rsp+32], 0 - 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 + 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 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@ - 000cf ff 15 00 00 00 + 000ef ff 15 00 00 00 00 call QWORD PTR __imp__invalid_parameter - 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] - 000ec 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 000f0 48 89 08 mov QWORD PTR [rax], rcx - -; 1209 : _Myproxy = nullptr; - - 000f3 48 8b 85 20 01 - 00 00 mov rax, QWORD PTR this$[rbp] - 000fa 48 c7 00 00 00 - 00 00 mov QWORD PTR [rax], 0 - -; 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 { - -$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] - 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 + 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 -; 1191 : _Parent_proxy->_Myfirstiter = this; +; 1192 : *_Pnext = _Mynextiter; - 00053 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR _Parent_proxy$[rbp] - 0005a 48 8b 8d e0 00 + 00101 48 8b 45 08 mov rax, QWORD PTR _Pnext$1[rbp] + 00105 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00061 48 89 48 08 mov QWORD PTR [rax+8], rcx + 0010c 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00110 48 89 08 mov QWORD PTR [rax], rcx -; 1192 : _Myproxy = _Parent_proxy; +; 1193 : _Myproxy = nullptr; - 00065 48 8b 85 e0 00 + 00113 48 8b 85 00 01 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 + 0011a 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 +$LN10@Orphan_me: -; 1193 : } +; 1194 : } +; 1195 : } - 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 + 00121 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 _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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 1175 : _CONSTEXPR20_CONTAINER const _Container_base12* _Getcont() const noexcept { +; 1179 : const _Container_base12* _Getcont() const noexcept { $LN5: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -17761,298 +18298,396 @@ $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 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 83 38 00 cmp QWORD PTR [rax], 0 - 0002a 74 16 je SHORT $LN3@Getcont - 0002c 48 8b 85 f0 00 + 0003d 48 83 38 00 cmp QWORD PTR [rax], 0 + 00041 74 16 je SHORT $LN3@Getcont + 00043 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00033 48 8b 00 mov rax, QWORD PTR [rax] - 00036 48 8b 00 mov rax, QWORD PTR [rax] - 00039 48 89 85 c0 00 + 0004a 48 8b 00 mov rax, QWORD PTR [rax] + 0004d 48 8b 00 mov rax, QWORD PTR [rax] + 00050 48 89 85 c0 00 00 00 mov QWORD PTR tv68[rbp], rax - 00040 eb 0b jmp SHORT $LN4@Getcont + 00057 eb 0b jmp SHORT $LN4@Getcont $LN3@Getcont: - 00042 48 c7 85 c0 00 + 00059 48 c7 85 c0 00 00 00 00 00 00 00 mov QWORD PTR tv68[rbp], 0 $LN4@Getcont: - 0004d 48 8b 85 c0 00 + 00064 48 8b 85 c0 00 00 00 mov rax, QWORD PTR tv68[rbp] -; 1177 : } +; 1181 : } - 00054 48 8d a5 d8 00 + 0006b 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 0005b 5f pop rdi - 0005c 5d pop rbp - 0005d c3 ret 0 + 00072 5f pop rdi + 00073 5d pop rbp + 00074 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.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 +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z _TEXT SEGMENT -_Parent_proxy$1 = 8 -this$ = 256 -_Parent$ = 264 +_Parent_proxy$5 = 8 +_Lock$6 = 36 +_Lock$7 = 68 +__$ArrayPad$ = 280 +this$ = 320 +_Parent$ = 328 ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z PROC ; std::_Iterator_base12::_Adopt, COMDAT -; 1134 : _CONSTEXPR20_CONTAINER void _Adopt(const _Container_base12* _Parent) noexcept { +; 1151 : 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 08 01 - 00 00 sub rsp, 264 ; 00000108H + 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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 1135 : if (_Parent) { // have a parent, do adoption +; 1152 : if (_Parent) { - 00024 48 83 bd 08 01 + 0004c 48 83 bd 48 01 00 00 00 cmp QWORD PTR _Parent$[rbp], 0 - 0002c 74 30 je SHORT $LN2@Adopt + 00054 74 75 je SHORT $LN2@Adopt -; 1136 : _Container_proxy* _Parent_proxy = _Parent->_Myproxy; +; 1153 : // have a parent, do adoption +; 1154 : _Container_proxy* _Parent_proxy = _Parent->_Myproxy; - 0002e 48 8b 85 08 01 + 00056 48 8b 85 48 01 00 00 mov rax, QWORD PTR _Parent$[rbp] - 00035 48 8b 00 mov rax, QWORD PTR [rax] - 00038 48 89 45 08 mov QWORD PTR _Parent_proxy$1[rbp], rax + 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(); -; 1137 : if (_Myproxy != _Parent_proxy) { // change parentage + 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; - 0003c 48 8b 85 00 01 + 0008f 48 8b 85 40 01 00 00 mov rax, QWORD PTR this$[rbp] - 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 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00057 e8 00 00 00 00 call ?_Adopt_locked@_Iterator_base12@std@@AEAAXPEAU_Container_proxy@2@@Z ; std::_Iterator_base12::_Adopt_locked + 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 $LN4@Adopt: -; 1145 : } -; 1146 : } -; 1147 : } else { // no future parent, just disown current parent +; 1164 : +; 1165 : #else // _ITERATOR_DEBUG_LEVEL == 2 +; 1166 : _Myproxy = _Parent_proxy; +; 1167 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1168 : } else { - 0005c eb 0c jmp SHORT $LN3@Adopt + 000c9 eb 25 jmp SHORT $LN3@Adopt $LN2@Adopt: -; 1148 : _Orphan_me_v2(); +; 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(); - 0005e 48 8b 8d 00 01 + 000da 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00065 e8 00 00 00 00 call ?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me_v2 + 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 $LN3@Adopt: -; 1149 : } -; 1150 : } +; 1177 : } - 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 + 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 ?_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.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??1_Iterator_base12@std@@QEAA@XZ _TEXT SEGMENT -this$ = 224 +_Lock$ = 4 +__$ArrayPad$ = 216 +this$ = 256 ??1_Iterator_base12@std@@QEAA@XZ PROC ; std::_Iterator_base12::~_Iterator_base12, COMDAT -; 1130 : _CONSTEXPR20_CONTAINER ~_Iterator_base12() noexcept { +; 1144 : ~_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 e8 00 - 00 00 sub rsp, 232 ; 000000e8H + 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 + 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 -; 1131 : _Orphan_me_v2(); +; 1145 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1146 : _Lockit _Lock(_LOCK_DEBUG); - 0001f 48 8b 8d e0 00 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00026 e8 00 00 00 00 call ?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me_v2 + 0005d e8 00 00 00 00 call ?_Orphan_me@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me -; 1132 : } +; 1148 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1149 : } - 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 + 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 ??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.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z _TEXT SEGMENT -this$ = 224 -_Right$ = 232 +_Lock$4 = 4 +__$ArrayPad$ = 216 +this$ = 256 +_Right$ = 264 ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z PROC ; std::_Iterator_base12::operator=, COMDAT -; 1114 : _CONSTEXPR20_CONTAINER _Iterator_base12& operator=(const _Iterator_base12& _Right) noexcept { +; 1127 : _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 e8 00 - 00 00 sub rsp, 232 ; 000000e8H + 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 + 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 -; 1115 : if (_Myproxy != _Right._Myproxy) { +; 1128 : if (_Myproxy != _Right._Myproxy) { - 00024 48 8b 85 e0 00 + 0004c 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 8b 8d e8 00 + 00053 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Right$[rbp] - 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 + 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 -; 1116 : if (_Right._Myproxy) { +; 1129 : if (_Right._Myproxy) { - 0003a 48 8b 85 e8 00 + 00062 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Right$[rbp] - 00041 48 83 38 00 cmp QWORD PTR [rax], 0 - 00045 74 1b je SHORT $LN3@operator + 00069 48 83 38 00 cmp QWORD PTR [rax], 0 + 0006d 74 1b je SHORT $LN3@operator -; 1117 : _Adopt(_Right._Myproxy->_Mycont); +; 1130 : _Adopt(_Right._Myproxy->_Mycont); - 00047 48 8b 85 e8 00 + 0006f 48 8b 85 08 01 00 00 mov rax, QWORD PTR _Right$[rbp] - 0004e 48 8b 00 mov rax, QWORD PTR [rax] - 00051 48 8b 10 mov rdx, QWORD PTR [rax] - 00054 48 8b 8d e0 00 + 00076 48 8b 00 mov rax, QWORD PTR [rax] + 00079 48 8b 10 mov rdx, QWORD PTR [rax] + 0007c 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 0005b e8 00 00 00 00 call ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z ; std::_Iterator_base12::_Adopt + 00083 e8 00 00 00 00 call ?_Adopt@_Iterator_base12@std@@QEAAXPEBU_Container_base12@2@@Z ; std::_Iterator_base12::_Adopt -; 1118 : } else { // becoming invalid, disown current parent +; 1131 : } else { // becoming invalid, disown current parent - 00060 eb 0c jmp SHORT $LN2@operator + 00088 eb 25 jmp SHORT $LN2@operator $LN3@operator: -; 1119 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1120 : _Orphan_me_v2(); +; 1132 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1133 : _Lockit _Lock(_LOCK_DEBUG); - 00062 48 8b 8d e0 00 + 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(); + + 00099 48 8b 8d 00 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00069 e8 00 00 00 00 call ?_Orphan_me_v2@_Iterator_base12@std@@QEAAXXZ ; std::_Iterator_base12::_Orphan_me_v2 + 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 $LN2@operator: -; 1121 : #else // _ITERATOR_DEBUG_LEVEL == 2 -; 1122 : _Myproxy = nullptr; -; 1123 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1124 : } -; 1125 : } -; 1126 : return *this; +; 1139 : } +; 1140 : +; 1141 : return *this; - 0006e 48 8b 85 e0 00 + 000af 48 8b 85 00 01 00 00 mov rax, QWORD PTR this$[rbp] -; 1127 : } +; 1142 : } - 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 + 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 ??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.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 1110 : _CONSTEXPR20_CONTAINER _Iterator_base12(const _Iterator_base12& _Right) noexcept { +; 1123 : _Iterator_base12(const _Iterator_base12& _Right) noexcept : _Myproxy(nullptr), _Mynextiter(nullptr) { $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -18062,119 +18697,51 @@ $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 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 c7 00 00 00 + 00042 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 - -; 1182 : mutable _Iterator_base12* _Mynextiter = nullptr; - - 00032 48 8b 85 e0 00 + 00049 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00039 48 c7 40 08 00 + 00050 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 -; 1111 : *this = _Right; +; 1124 : *this = _Right; - 00041 48 8b 95 e8 00 + 00058 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Right$[rbp] - 00048 48 8b 8d e0 00 + 0005f 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0004f e8 00 00 00 00 call ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z ; std::_Iterator_base12::operator= + 00066 e8 00 00 00 00 call ??4_Iterator_base12@std@@QEAAAEAU01@AEBU01@@Z ; std::_Iterator_base12::operator= -; 1112 : } +; 1125 : } - 00054 48 8b 85 e0 00 + 0006b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005b 48 8d a5 c8 00 + 00072 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 + 00079 5f pop rdi + 0007a 5d pop rbp + 0007b 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.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 1108 : _CONSTEXPR20_CONTAINER _Iterator_base12() noexcept = default; // construct orphaned iterator +; 1121 : _Iterator_base12() noexcept : _Myproxy(nullptr), _Mynextiter(nullptr) {} // construct orphaned iterator $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -18183,303 +18750,156 @@ $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 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 c7 00 00 00 + 0003d 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 - -; 1182 : mutable _Iterator_base12* _Mynextiter = nullptr; - - 0002d 48 8b 85 e0 00 + 00044 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00034 48 c7 40 08 00 + 0004b 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - -; 1108 : _CONSTEXPR20_CONTAINER _Iterator_base12() noexcept = default; // construct orphaned iterator - - 0003c 48 8b 85 e0 00 + 00053 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00043 48 8d a5 c8 00 + 0005a 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 + 00061 5f pop rdi + 00062 5d pop rbp + 00063 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.29.30037\include\xmemory -; COMDAT ?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ +; 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 _TEXT SEGMENT -_Lock$ = 4 -__$ArrayPad$ = 216 -this$ = 256 -?_Orphan_all_locked@_Container_base12@std@@AEAAXXZ PROC ; std::_Container_base12::_Orphan_all_locked, COMDAT +_Lock$4 = 4 +_Pnext$5 = 40 +__$ArrayPad$ = 248 +this$ = 288 +?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT -; 1095 : void _Orphan_all_locked() noexcept { +; 1205 : inline void _Container_base12::_Orphan_all() noexcept { -$LN3: +$LN7: 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 28 01 + 00 00 sub rsp, 296 ; 00000128H 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 + 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 00 00 mov rax, QWORD PTR __security_cookie - 00033 48 33 c5 xor rax, rbp - 00036 48 89 85 d8 00 + 00031 48 33 c5 xor rax, rbp + 00034 48 89 85 f8 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(); + 0003b 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__A58979FC_xmemory + 00042 e8 00 00 00 00 call __CheckForDebuggerJustMyCode - 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 : } +; 1206 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1207 : if (_Myproxy) { // proxy allocated, drain it - 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 + 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 -; 1220 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all_unlocked() noexcept { +; 1208 : _Lockit _Lock(_LOCK_DEBUG); -$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 + 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 -; 1221 : for (auto& _Pnext = _Myproxy->_Myfirstiter; _Pnext; _Pnext = _Pnext->_Mynextiter) { // TRANSITION, VSO-1269037 +; 1209 : +; 1210 : for (auto _Pnext = &_Myproxy->_Myfirstiter; *_Pnext; *_Pnext = (*_Pnext)->_Mynextiter) { - 0001f 48 8b 85 00 01 + 00063 48 8b 85 20 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 + 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 $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 + 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 $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 + 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 -; 1222 : _Pnext->_Myproxy = nullptr; +; 1211 : (*_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 + 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 00 00 mov QWORD PTR [rax], 0 -; 1223 : } +; 1212 : } - 0005d eb d4 jmp SHORT $LN2@Orphan_all + 000a1 eb d4 jmp SHORT $LN2@Orphan_all $LN3@Orphan_all: -; 1224 : _Myproxy->_Myfirstiter = nullptr; +; 1213 : +; 1214 : _Myproxy->_Myfirstiter = nullptr; - 0005f 48 8b 85 00 01 + 000a3 48 8b 85 20 01 00 00 mov rax, QWORD PTR this$[rbp] - 00066 48 8b 00 mov rax, QWORD PTR [rax] - 00069 48 c7 40 08 00 + 000aa 48 8b 00 mov rax, QWORD PTR [rax] + 000ad 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 -; 1225 : } - - 00071 48 8d a5 e8 00 - 00 00 lea rsp, QWORD PTR [rbp+232] - 00078 5f pop rdi - 00079 5d pop rbp - 0007a c3 ret 0 -?_Orphan_all_unlocked@_Container_base12@std@@AEAAXXZ ENDP ; std::_Container_base12::_Orphan_all_unlocked -_TEXT ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory -; COMDAT ?_Orphan_all@_Container_base12@std@@QEAAXXZ -_TEXT SEGMENT -this$ = 224 -?_Orphan_all@_Container_base12@std@@QEAAXXZ PROC ; std::_Container_base12::_Orphan_all, COMDAT - -; 1227 : _CONSTEXPR20_CONTAINER void _Container_base12::_Orphan_all() noexcept { - -$LN4: - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 55 push rbp - 00006 57 push rdi - 00007 48 81 ec e8 00 - 00 00 sub rsp, 232 ; 000000e8H - 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] - 00013 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 1228 : #if _ITERATOR_DEBUG_LEVEL == 2 -; 1229 : if (_Myproxy) { // proxy allocated, drain it +; 1215 : } - 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: + 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: -; 1237 : } -; 1238 : } -; 1239 : #endif // _ITERATOR_DEBUG_LEVEL == 2 -; 1240 : } +; 1216 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1217 : } - 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 + 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 ?_Orphan_all@_Container_base12@std@@QEAAXXZ ENDP ; std::_Container_base12::_Orphan_all _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 1064 : _CONSTEXPR20_CONTAINER _Container_base12() noexcept = default; +; 1092 : _Container_base12() noexcept : _Myproxy(nullptr) {} $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -18488,61 +18908,37 @@ $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 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 c7 00 00 00 + 0003d 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 - -; 1064 : _CONSTEXPR20_CONTAINER _Container_base12() noexcept = default; - - 0002d 48 8b 85 e0 00 + 00044 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00034 48 8d a5 c8 00 + 0004b 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 + 00052 5f pop rdi + 00053 5d pop rbp + 00054 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.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 1056 : _CONSTEXPR20_CONTAINER _Container_proxy(_Container_base12* _Mycont_) noexcept : _Mycont(_Mycont_) {} +; 1084 : _Container_proxy(_Container_base12* _Mycont_) noexcept : _Mycont(_Mycont_), _Myfirstiter(nullptr) {} $LN3: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -18552,37 +18948,35 @@ $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 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 8b 8d e8 00 + 00042 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Mycont_$[rbp] - 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 + 00049 48 89 08 mov QWORD PTR [rax], rcx + 0004c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0003c 48 c7 40 08 00 + 00053 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - -; 1056 : _CONSTEXPR20_CONTAINER _Container_proxy(_Container_base12* _Mycont_) noexcept : _Mycont(_Mycont_) {} - - 00044 48 8b 85 e0 00 + 0005b 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004b 48 8d a5 c8 00 + 00062 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 + 00069 5f pop rdi + 0006a 5d pop rbp + 0006b 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.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xmemory ; COMDAT ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z _TEXT SEGMENT _Ptr_user$ = 8 @@ -18593,7 +18987,7 @@ _Ptr$ = 352 _Bytes$ = 360 ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z PROC ; std::_Adjust_manually_vector_aligned, COMDAT -; 153 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { +; 132 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { $LN21: 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx @@ -18603,196 +18997,202 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__DD38B15A_xmemory - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 154 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete -; 155 : _Bytes += _Non_user_size; +; 133 : // adjust parameters from _Allocate_manually_vector_aligned to pass to operator delete +; 134 : _Bytes += _Non_user_size; - 00024 48 8b 85 68 01 + 0003b 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 + 00042 48 8b 00 mov rax, QWORD PTR [rax] + 00045 48 83 c0 2f add rax, 47 ; 0000002fH + 00049 48 8b 8d 68 01 00 00 mov rcx, QWORD PTR _Bytes$[rbp] - 00039 48 89 01 mov QWORD PTR [rcx], rax + 00050 48 89 01 mov QWORD PTR [rcx], rax -; 156 : -; 157 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); +; 135 : +; 136 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); - 0003c 48 8b 85 60 01 + 00053 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 + 0005a 48 8b 00 mov rax, QWORD PTR [rax] + 0005d 48 89 45 08 mov QWORD PTR _Ptr_user$[rbp], rax -; 158 : const uintptr_t _Ptr_container = _Ptr_user[-1]; +; 137 : 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 + 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 $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"); +; 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"); - 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 + 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 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 + 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 $LN14@Adjust_man: $LN7@Adjust_man: - 0007e 8b 05 00 00 00 + 00095 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 + 0009b 83 c0 09 add eax, 9 + 0009e 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 + 000a5 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 000aa 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 + 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 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 + 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 $LN19@Adjust_man: - 000bf 8b 05 00 00 00 + 000d6 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 + 000dc 83 c0 09 add eax, 9 + 000df 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 + 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 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 + 000f9 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 + 00100 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 + 00106 33 c0 xor eax, eax + 00108 85 c0 test eax, eax + 0010a 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 + 0010c 33 c0 xor eax, eax + 0010e 85 c0 test eax, eax + 00110 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*); +; 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*); - 000ff 48 c7 45 48 10 + 00116 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; +; 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; - 00107 48 8b 85 60 01 + 0011e 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 + 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 $LN10@Adjust_man: -; 172 : _STL_VERIFY(_Back_shift >= _Min_back_shift && _Back_shift <= _Non_user_size, "invalid argument"); +; 151 : _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 + 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 $LN16@Adjust_man: $LN13@Adjust_man: - 0012c 8b 05 00 00 00 + 00143 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 + 00149 83 c0 13 add eax, 19 + 0014c 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 + 00153 48 89 4c 24 28 mov QWORD PTR [rsp+40], rcx + 00158 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 + 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 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 + 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 $LN20@Adjust_man: - 0016d 8b 05 00 00 00 + 00184 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 + 0018a 83 c0 13 add eax, 19 + 0018d 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 + 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 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 + 001a7 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 + 001ae 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 + 001b4 33 c0 xor eax, eax + 001b6 85 c0 test eax, eax + 001b8 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 + 001ba 33 c0 xor eax, eax + 001bc 85 c0 test eax, eax + 001be 0f 85 6f ff ff ff jne $LN10@Adjust_man -; 173 : _Ptr = reinterpret_cast(_Ptr_container); +; 152 : _Ptr = reinterpret_cast(_Ptr_container); - 001ad 48 8b 85 60 01 + 001c4 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 + 001cb 48 8b 4d 28 mov rcx, QWORD PTR _Ptr_container$[rbp] + 001cf 48 89 08 mov QWORD PTR [rax], rcx -; 174 : } +; 153 : } - 001bb 48 8d a5 48 01 + 001d2 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 + 001d9 5f pop rdi + 001da 5d pop rbp + 001db 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.29.30037\include\xmemory +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 84 : void* _Allocate(const size_t _Bytes) { +; 76 : __declspec(allocator) static void* _Allocate(const size_t _Bytes) { $LN3: 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx @@ -18801,27 +19201,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 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 + 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 00 00 mov rcx, QWORD PTR _Bytes$[rbp] - 00026 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new + 0003d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new -; 86 : } +; 78 : } - 0002b 48 8d a5 c8 00 + 00042 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 + 00049 5f pop rdi + 0004a 5d pop rbp + 0004b 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.29.30037\include\exception +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\exception ; COMDAT ?_Throw_bad_array_new_length@std@@YAXXZ _TEXT SEGMENT $T1 = 200 @@ -18835,29 +19241,33 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__89F7010A_exception - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 321 : _THROW(bad_array_new_length{}); - 0001b 48 8d 8d c8 00 + 0002a 48 8d 8d c8 00 00 00 lea rcx, QWORD PTR $T1[rbp] - 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 + 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 00 00 lea rdx, OFFSET FLAT:_TI3?AVbad_array_new_length@std@@ - 0002e 48 8d 8d c8 00 + 0003d 48 8d 8d c8 00 00 00 lea rcx, QWORD PTR $T1[rbp] - 00035 e8 00 00 00 00 call _CxxThrowException + 00044 e8 00 00 00 00 call _CxxThrowException $LN2@Throw_bad_: ; 322 : } - 0003a 48 8d a5 f8 00 + 00049 48 8d a5 f8 00 00 00 lea rsp, QWORD PTR [rbp+248] - 00041 5f pop rdi - 00042 5d pop rbp - 00043 c3 ret 0 + 00050 5f pop rdi + 00051 5d pop rbp + 00052 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 @@ -18874,26 +19284,32 @@ $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 8d e0 00 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0001e e8 00 00 00 00 call ??1bad_array_new_length@std@@UEAA@XZ - 00023 8b 85 e8 00 00 + 00035 e8 00 00 00 00 call ??1bad_array_new_length@std@@UEAA@XZ + 0003a 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00029 83 e0 01 and eax, 1 - 0002c 85 c0 test eax, eax - 0002e 74 11 je SHORT $LN2@scalar - 00030 ba 18 00 00 00 mov edx, 24 - 00035 48 8b 8d e0 00 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00041 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d a5 c8 00 + 0005f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 + 00066 5f pop rdi + 00067 5d pop rbp + 00068 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 @@ -18910,23 +19326,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 95 e8 00 + 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 00 00 mov rdx, QWORD PTR __that$[rbp] - 0001f 48 8b 8d e0 00 + 00036 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00026 e8 00 00 00 00 call ??0bad_alloc@std@@QEAA@AEBV01@@Z - 0002b 48 8b 85 e0 00 + 0003d e8 00 00 00 00 call ??0bad_alloc@std@@QEAA@AEBV01@@Z + 00042 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00032 48 8d 0d 00 00 + 00049 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_array_new_length@std@@6B@ - 00039 48 89 08 mov QWORD PTR [rax], rcx - 0003c 48 8b 85 e0 00 + 00050 48 89 08 mov QWORD PTR [rax], rcx + 00053 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00043 48 8d a5 c8 00 + 0005a 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 + 00061 5f pop rdi + 00062 5d pop rbp + 00063 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 @@ -18941,18 +19363,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 8d e0 00 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0001a e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ - 0001f 48 8d a5 c8 00 + 00031 e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ + 00036 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003d 5f pop rdi + 0003e 5d pop rbp + 0003f 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.29.30037\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h ; COMDAT ??0bad_array_new_length@std@@QEAA@XZ _TEXT SEGMENT this$ = 224 @@ -18967,35 +19395,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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 140 : : bad_alloc("bad array new length") - 0001f 48 8d 15 00 00 + 00036 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??_C@_0BF@KINCDENJ@bad?5array?5new?5length@ - 00026 48 8b 8d e0 00 + 0003d 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0002d e8 00 00 00 00 call ??0bad_alloc@std@@AEAA@QEBD@Z ; std::bad_alloc::bad_alloc + 00044 e8 00 00 00 00 call ??0bad_alloc@std@@AEAA@QEBD@Z ; std::bad_alloc::bad_alloc ; 141 : { - 00032 48 8b 85 e0 00 + 00049 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00039 48 8d 0d 00 00 + 00050 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_array_new_length@std@@6B@ - 00040 48 89 08 mov QWORD PTR [rax], rcx + 00057 48 89 08 mov QWORD PTR [rax], rcx ; 142 : } - 00043 48 8b 85 e0 00 + 0005a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0004a 48 8d a5 c8 00 + 00061 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00051 5f pop rdi - 00052 5d pop rbp - 00053 c3 ret 0 + 00068 5f pop rdi + 00069 5d pop rbp + 0006a 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 @@ -19012,26 +19446,32 @@ $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 8d e0 00 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0001e e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ - 00023 8b 85 e8 00 00 + 00035 e8 00 00 00 00 call ??1bad_alloc@std@@UEAA@XZ + 0003a 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00029 83 e0 01 and eax, 1 - 0002c 85 c0 test eax, eax - 0002e 74 11 je SHORT $LN2@scalar - 00030 ba 18 00 00 00 mov edx, 24 - 00035 48 8b 8d e0 00 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00041 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d a5 c8 00 + 0005f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 + 00066 5f pop rdi + 00067 5d pop rbp + 00068 c3 ret 0 ??_Gbad_alloc@std@@UEAAPEAXI@Z ENDP ; std::bad_alloc::`scalar deleting destructor' _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19048,23 +19488,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 95 e8 00 + 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 00 00 mov rdx, QWORD PTR __that$[rbp] - 0001f 48 8b 8d e0 00 + 00036 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00026 e8 00 00 00 00 call ??0exception@std@@QEAA@AEBV01@@Z ; std::exception::exception - 0002b 48 8b 85 e0 00 + 0003d e8 00 00 00 00 call ??0exception@std@@QEAA@AEBV01@@Z ; std::exception::exception + 00042 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00032 48 8d 0d 00 00 + 00049 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_alloc@std@@6B@ - 00039 48 89 08 mov QWORD PTR [rax], rcx - 0003c 48 8b 85 e0 00 + 00050 48 89 08 mov QWORD PTR [rax], rcx + 00053 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00043 48 8d a5 c8 00 + 0005a 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 + 00061 5f pop rdi + 00062 5d pop rbp + 00063 c3 ret 0 ??0bad_alloc@std@@QEAA@AEBV01@@Z ENDP ; std::bad_alloc::bad_alloc _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19079,18 +19525,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 8d e0 00 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0001a e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception - 0001f 48 8d a5 c8 00 + 00031 e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception + 00036 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003d 5f pop rdi + 0003e 5d pop rbp + 0003f 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.29.30037\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h ; COMDAT ??0bad_alloc@std@@AEAA@QEBD@Z _TEXT SEGMENT this$ = 224 @@ -19107,37 +19559,43 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 129 : : exception(_Message, 1) - 00024 41 b8 01 00 00 + 0003b 41 b8 01 00 00 00 mov r8d, 1 - 0002a 48 8b 95 e8 00 + 00041 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _Message$[rbp] - 00031 48 8b 8d e0 00 + 00048 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 00038 e8 00 00 00 00 call ??0exception@std@@QEAA@QEBDH@Z ; std::exception::exception + 0004f e8 00 00 00 00 call ??0exception@std@@QEAA@QEBDH@Z ; std::exception::exception ; 130 : { - 0003d 48 8b 85 e0 00 + 00054 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00044 48 8d 0d 00 00 + 0005b 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7bad_alloc@std@@6B@ - 0004b 48 89 08 mov QWORD PTR [rax], rcx + 00062 48 89 08 mov QWORD PTR [rax], rcx ; 131 : } - 0004e 48 8b 85 e0 00 + 00065 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00055 48 8d a5 c8 00 + 0006c 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 + 00073 5f pop rdi + 00074 5d pop rbp + 00075 c3 ret 0 ??0bad_alloc@std@@AEAA@QEBD@Z ENDP ; std::bad_alloc::bad_alloc _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19154,30 +19612,36 @@ $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 8d e0 00 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0001e e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception - 00023 8b 85 e8 00 00 + 00035 e8 00 00 00 00 call ??1exception@std@@UEAA@XZ ; std::exception::~exception + 0003a 8b 85 e8 00 00 00 mov eax, DWORD PTR __flags$[rbp] - 00029 83 e0 01 and eax, 1 - 0002c 85 c0 test eax, eax - 0002e 74 11 je SHORT $LN2@scalar - 00030 ba 18 00 00 00 mov edx, 24 - 00035 48 8b 8d e0 00 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00041 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d a5 c8 00 + 0005f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 + 00066 5f pop rdi + 00067 5d pop rbp + 00068 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.29.30037\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h ; COMDAT ?what@exception@std@@UEBAPEBDXZ _TEXT SEGMENT tv69 = 192 @@ -19193,42 +19657,48 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BDCC0984_vcruntime_exception@h - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 95 : return _Data._What ? _Data._What : "Unknown exception"; - 0001f 48 8b 85 f0 00 + 00036 48 8b 85 f0 00 00 00 mov rax, QWORD PTR this$[rbp] - 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] - 00034 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00038 48 89 85 c0 00 + 0004b 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0004f 48 89 85 c0 00 00 00 mov QWORD PTR tv69[rbp], rax - 0003f eb 0e jmp SHORT $LN4@what + 00056 eb 0e jmp SHORT $LN4@what $LN3@what: - 00041 48 8d 05 00 00 + 00058 48 8d 05 00 00 00 00 lea rax, OFFSET FLAT:??_C@_0BC@EOODALEL@Unknown?5exception@ - 00048 48 89 85 c0 00 + 0005f 48 89 85 c0 00 00 00 mov QWORD PTR tv69[rbp], rax $LN4@what: - 0004f 48 8b 85 c0 00 + 00066 48 8b 85 c0 00 00 00 mov rax, QWORD PTR tv69[rbp] ; 96 : } - 00056 48 8d a5 d8 00 + 0006d 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 0005d 5f pop rdi - 0005e 5d pop rbp - 0005f c3 ret 0 + 00074 5f pop rdi + 00075 5d pop rbp + 00076 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.29.30037\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h ; COMDAT ??1exception@std@@UEAA@XZ _TEXT SEGMENT this$ = 224 @@ -19243,34 +19713,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 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] - 00026 48 8d 0d 00 00 + 0003d 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ - 0002d 48 89 08 mov QWORD PTR [rax], rcx + 00044 48 89 08 mov QWORD PTR [rax], rcx ; 90 : __std_exception_destroy(&_Data); - 00030 48 8b 85 e0 00 + 00047 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 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 + 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 ; 91 : } - 00043 48 8d a5 c8 00 + 0005b 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 + 00062 5f pop rdi + 00063 5d pop rbp + 00064 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.29.30037\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h ; COMDAT ??0exception@std@@QEAA@AEBV01@@Z _TEXT SEGMENT this$ = 224 @@ -19287,49 +19764,55 @@ $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 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] - 0002b 48 8d 0d 00 00 + 00042 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ - 00032 48 89 08 mov QWORD PTR [rax], rcx + 00049 48 89 08 mov QWORD PTR [rax], rcx ; 71 : : _Data() - 00035 48 8b 85 e0 00 + 0004c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 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 + 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 ; 73 : __std_exception_copy(&_Other._Data, &_Data); - 0004c 48 8b 85 e0 00 + 00063 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00053 48 83 c0 08 add rax, 8 - 00057 48 8b 8d e8 00 + 0006a 48 83 c0 08 add rax, 8 + 0006e 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Other$[rbp] - 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 + 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 ; 74 : } - 0006a 48 8b 85 e0 00 + 00081 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00071 48 8d a5 c8 00 + 00088 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00078 5f pop rdi - 00079 5d pop rbp - 0007a c3 ret 0 + 0008f 5f pop rdi + 00090 5d pop rbp + 00091 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.29.30037\include\vcruntime_exception.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_exception.h ; COMDAT ??0exception@std@@QEAA@QEBDH@Z _TEXT SEGMENT this$ = 224 @@ -19348,51 +19831,57 @@ $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 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 + 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 00 00 mov rax, QWORD PTR this$[rbp] - 00030 48 8d 0d 00 00 + 00047 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_7exception@std@@6B@ - 00037 48 89 08 mov QWORD PTR [rax], rcx + 0004e 48 89 08 mov QWORD PTR [rax], rcx ; 65 : : _Data() - 0003a 48 8b 85 e0 00 + 00051 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 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 + 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 ; 67 : _Data._What = _Message; - 00051 48 8b 85 e0 00 + 00068 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00058 48 8b 8d e8 00 + 0006f 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR _Message$[rbp] - 0005f 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00076 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 68 : } - 00063 48 8b 85 e0 00 + 0007a 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0006a 48 8d a5 c8 00 + 00081 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00071 5f pop rdi - 00072 5d pop rbp - 00073 c3 ret 0 + 00088 5f pop rdi + 00089 5d pop rbp + 0008a 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.29.30037\include\limits +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 -; 647 : _NODISCARD static constexpr long long(max)() noexcept { +; 645 : _NODISCARD static constexpr long long(max)() noexcept { $LN3: 00000 40 55 push rbp @@ -19400,22 +19889,26 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__44860E64_limits - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 648 : return LLONG_MAX; +; 646 : return LLONG_MAX; - 0001b 48 b8 ff ff ff + 0002a 48 b8 ff ff ff ff ff ff ff 7f mov rax, 9223372036854775807 ; 7fffffffffffffffH -; 649 : } +; 647 : } - 00025 48 8d a5 c8 00 + 00034 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002c 5f pop rdi - 0002d 5d pop rbp - 0002e c3 ret 0 + 0003b 5f pop rdi + 0003c 5d pop rbp + 0003d c3 ret 0 ?max@?$numeric_limits@_J@std@@SA_JXZ ENDP ; std::numeric_limits<__int64>::max _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19438,30 +19931,36 @@ $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 8d 0d 00 00 + 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:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 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 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19488,75 +19987,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 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 + 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 01 00 00 mov rcx, QWORD PTR [rsp+376] - 0003b 48 8b 05 00 00 + 00039 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00042 48 33 c5 xor rax, rbp - 00045 48 89 85 28 01 + 00040 48 33 c5 xor rax, rbp + 00043 48 89 85 28 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 0004c 48 8d 0d 00 00 + 0004a 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h - 00053 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00051 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 957 : int _Result; ; 958 : va_list _ArgList; ; 959 : __crt_va_start(_ArgList, _Format); - 00058 48 8d 85 58 01 + 00056 48 8d 85 58 01 00 00 lea rax, QWORD PTR _Format$[rbp+8] - 0005f 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax + 0005d 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax ; 960 : _Result = _vfprintf_l(stdout, _Format, NULL, _ArgList); - 00063 48 8b 45 28 mov rax, QWORD PTR _ArgList$[rbp] - 00067 48 89 85 18 01 + 00061 48 8b 45 28 mov rax, QWORD PTR _ArgList$[rbp] + 00065 48 89 85 18 01 00 00 mov QWORD PTR tv77[rbp], rax - 0006e b9 01 00 00 00 mov ecx, 1 - 00073 ff 15 00 00 00 + 0006c b9 01 00 00 00 mov ecx, 1 + 00071 ff 15 00 00 00 00 call QWORD PTR __imp___acrt_iob_func - 00079 48 89 85 20 01 + 00077 48 89 85 20 01 00 00 mov QWORD PTR tv75[rbp], rax - 00080 4c 8b 8d 18 01 + 0007e 4c 8b 8d 18 01 00 00 mov r9, QWORD PTR tv77[rbp] - 00087 45 33 c0 xor r8d, r8d - 0008a 48 8b 95 50 01 + 00085 45 33 c0 xor r8d, r8d + 00088 48 8b 95 50 01 00 00 mov rdx, QWORD PTR _Format$[rbp] - 00091 48 8b 8d 20 01 + 0008f 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR tv75[rbp] - 00098 e8 00 00 00 00 call _vfprintf_l - 0009d 89 45 04 mov DWORD PTR _Result$[rbp], eax + 00096 e8 00 00 00 00 call _vfprintf_l + 0009b 89 45 04 mov DWORD PTR _Result$[rbp], eax ; 961 : __crt_va_end(_ArgList); - 000a0 48 c7 45 28 00 + 0009e 48 c7 45 28 00 00 00 00 mov QWORD PTR _ArgList$[rbp], 0 ; 962 : return _Result; - 000a8 8b 45 04 mov eax, DWORD PTR _Result$[rbp] + 000a6 8b 45 04 mov eax, DWORD PTR _Result$[rbp] ; 963 : } - 000ab 8b f8 mov edi, eax - 000ad 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 000b1 48 8d 15 00 00 + 000a9 8b f8 mov edi, eax + 000ab 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000af 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:printf$rtcFrameData - 000b8 e8 00 00 00 00 call _RTC_CheckStackVars - 000bd 8b c7 mov eax, edi - 000bf 48 8b 8d 28 01 + 000b6 e8 00 00 00 00 call _RTC_CheckStackVars + 000bb 8b c7 mov eax, edi + 000bd 48 8b 8d 28 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000c6 48 33 cd xor rcx, rbp - 000c9 e8 00 00 00 00 call __security_check_cookie - 000ce 48 8d a5 38 01 + 000c4 48 33 cd xor rcx, rbp + 000c7 e8 00 00 00 00 call __security_check_cookie + 000cc 48 8d a5 38 01 00 00 lea rsp, QWORD PTR [rbp+312] - 000d5 5f pop rdi - 000d6 5d pop rbp - 000d7 c3 ret 0 + 000d3 5f pop rdi + 000d4 5d pop rbp + 000d5 c3 ret 0 printf ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19581,33 +20080,39 @@ $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 8d 0d 00 00 + 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:__6DFAE8B8_stdio@h - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 645 : return __stdio_common_vfprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList); - 0002e e8 00 00 00 00 call __local_stdio_printf_options - 00033 48 8b 8d f8 00 + 00045 e8 00 00 00 00 call __local_stdio_printf_options + 0004a 48 8b 8d f8 00 00 00 mov rcx, QWORD PTR _ArgList$[rbp] - 0003a 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx - 0003f 4c 8b 8d f0 00 + 00051 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx + 00056 4c 8b 8d f0 00 00 00 mov r9, QWORD PTR _Locale$[rbp] - 00046 4c 8b 85 e8 00 + 0005d 4c 8b 85 e8 00 00 00 mov r8, QWORD PTR _Format$[rbp] - 0004d 48 8b 95 e0 00 + 00064 48 8b 95 e0 00 00 00 mov rdx, QWORD PTR _Stream$[rbp] - 00054 48 8b 08 mov rcx, QWORD PTR [rax] - 00057 ff 15 00 00 00 + 0006b 48 8b 08 mov rcx, QWORD PTR [rax] + 0006e ff 15 00 00 00 00 call QWORD PTR __imp___stdio_common_vfprintf ; 646 : } - 0005d 48 8d a5 c8 00 + 00074 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00064 5f pop rdi - 00065 5d pop rbp - 00066 c3 ret 0 + 0007b 5f pop rdi + 0007c 5d pop rbp + 0007d c3 ret 0 _vfprintf_l ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -19624,27 +20129,31 @@ $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 8d 0d 00 00 + 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:__A2143F22_corecrt_stdio_config@h - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 91 : static unsigned __int64 _OptionsStorage; ; 92 : return &_OptionsStorage; - 0001b 48 8d 05 00 00 + 0002a 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 : } - 00022 48 8d a5 c8 00 + 00031 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00029 5f pop rdi - 0002a 5d pop rbp - 0002b c3 ret 0 + 00038 5f pop rdi + 00039 5d pop rbp + 0003a 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.29.30037\include\vcruntime_new.h +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\vcruntime_new.h ; COMDAT ??2@YAPEAX_KPEAX@Z _TEXT SEGMENT _Size$ = 224 @@ -19661,27 +20170,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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__02E23235_vcruntime_new@h - 0001f e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 168 : (void)_Size; ; 169 : return _Where; - 00024 48 8b 85 e8 00 + 0003b 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Where$[rbp] ; 170 : } - 0002b 48 8d a5 c8 00 + 00042 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 + 00049 5f pop rdi + 0004a 5d pop rbp + 0004b c3 ret 0 ??2@YAPEAX_KPEAX@Z ENDP ; operator new _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -19698,18 +20213,25 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -19724,18 +20246,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -19750,18 +20279,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\NativeCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\NativeCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -19774,14 +20310,21 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 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 e432ce2..d2f4e40 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.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 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 -__02E23235_vcruntime_new@h DB 01H +__8906660C_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,55 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__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 __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__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 +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_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 msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -95,11 +94,11 @@ 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 ?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ ; NcEmitNop -PUBLIC ?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z ; NcEmitNopGroup +PUBLIC ?NcEmitNopGroup@@YAHKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcEmitNopGroup PUBLIC __JustMyCode_Default -PUBLIC ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@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 @@ -115,9 +114,7 @@ EXTRN __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ:PROC EXTRN __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ:PROC EXTRN __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ:PROC EXTRN __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ:PROC -EXTRN xed_decode:PROC EXTRN ??0_NATIVE_CODE_LINK@@QEAA@KPEAXKH@Z:PROC ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK -EXTRN ??0_NATIVE_CODE_BLOCK@@QEAA@XZ:PROC ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK EXTRN ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z:PROC ; NcAppendToBlock EXTRN _RTC_CheckStackVars:PROC EXTRN _RTC_InitBase:PROC @@ -131,67 +128,67 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 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+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DD imagerel $LN6 - DD imagerel $LN6+253 + DD imagerel $LN6+221 DD imagerel $unwind$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ pdata ENDS ; COMDAT pdata @@ -202,15 +199,9 @@ $pdata$?dtor$0@?0??NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ@4HA DD imagerel ?dtor$ pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z DD imagerel $LN10 - DD imagerel $LN10+197 - DD imagerel $unwind$?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z -pdata ENDS -; COMDAT pdata -pdata SEGMENT -$pdata$?dtor$0@?0??NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z@4HA DD imagerel ?dtor$0@?0??NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z@4HA - DD imagerel ?dtor$0@?0??NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z@4HA+44 - DD imagerel $unwind$?dtor$0@?0??NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z@4HA +$pdata$?NcEmitNopGroup@@YAHKPEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN6 + DD imagerel $LN6+130 + DD imagerel $unwind$?NcEmitNopGroup@@YAHKPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT rtc$TMZ rtc$TMZ SEGMENT @@ -230,76 +221,31 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@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' +??_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' 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 - DD 0700c4210H - DD 0500bH +$unwind$?NcEmitNopGroup@@YAHKPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052d01H + DD 01122317H + DD 0700b001dH + DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$ip2state$?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z DB 06H - DB 00H - DB 00H - DB '~' - DB 02H - DB 'p' - DB 00H -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$stateUnwindMap$?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z DB 02H - DB 0eH - DD imagerel ?dtor$0@?0??NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z@4HA -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$cppxdata$?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z DB 028H - DD imagerel $stateUnwindMap$?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z - DD imagerel $ip2state$?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z -xdata ENDS -; COMDAT xdata -xdata SEGMENT -$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 DD 0700c4210H DD 0500bH @@ -309,7 +255,7 @@ xdata SEGMENT $ip2state$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DB 06H DB 00H DB 00H - DB 0a4H + DB 0a0H DB 02H DB 09eH DB 00H @@ -328,7 +274,7 @@ $cppxdata$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DB 028H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DD 035053119H +$unwind$?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ DD 035052f19H DD 010a330fH DD 070030031H DD 05002H @@ -357,40 +303,35 @@ 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 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -435,38 +376,90 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$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 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 -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H +$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 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 025051801H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H 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 025051301H +$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025052a19H 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 @@ -476,175 +469,90 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp -; COMDAT ?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp +; COMDAT ?NcEmitNopGroup@@YAHKPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT -Block$ = 8 -$T1 = 232 -$T2 = 264 -tv76 = 280 -Count$ = 320 -?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z PROC ; NcEmitNopGroup, COMDAT +Count$ = 224 +Block$ = 232 +?NcEmitNopGroup@@YAHKPEAU_NATIVE_CODE_BLOCK@@@Z PROC ; NcEmitNopGroup, COMDAT ; 12 : { -$LN10: - 00000 89 4c 24 08 mov DWORD PTR [rsp+8], ecx - 00004 55 push rbp - 00005 57 push rdi - 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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__52D0D2F0_Nop@cpp - 00019 e8 00 00 00 00 call __CheckForDebuggerJustMyCode +$LN6: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 89 4c 24 08 mov DWORD PTR [rsp+8], ecx + 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 8b 8c 24 08 01 + 00 00 mov ecx, DWORD PTR [rsp+264] + 0002d 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0A9363B8_Nop@cpp + 00034 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 13 : if (Count < 1) - 0001e 83 bd 40 01 00 + 00039 83 bd e0 00 00 00 01 cmp DWORD PTR Count$[rbp], 1 - 00025 73 07 jae SHORT $LN4@NcEmitNopG + 00040 73 04 jae SHORT $LN4@NcEmitNopG -; 14 : return NULL; +; 14 : return FALSE; - 00027 33 c0 xor eax, eax - 00029 e9 8d 00 00 00 jmp $LN1@NcEmitNopG + 00042 33 c0 xor eax, eax + 00044 eb 32 jmp SHORT $LN1@NcEmitNopG $LN4@NcEmitNopG: - -; 15 : -; 16 : PNATIVE_CODE_BLOCK Block = new NATIVE_CODE_BLOCK; - - 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 - 0003f 48 83 bd 08 01 - 00 00 00 cmp QWORD PTR $T2[rbp], 0 - 00047 74 15 je SHORT $LN7@NcEmitNopG - 00049 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR $T2[rbp] - 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 - 0005c eb 0b jmp SHORT $LN8@NcEmitNopG -$LN7@NcEmitNopG: - 0005e 48 c7 85 18 01 - 00 00 00 00 00 - 00 mov QWORD PTR tv76[rbp], 0 -$LN8@NcEmitNopG: - 00069 48 8b 85 18 01 - 00 00 mov rax, QWORD PTR tv76[rbp] - 00070 48 89 85 e8 00 - 00 00 mov QWORD PTR $T1[rbp], rax - 00077 48 8b 85 e8 00 - 00 00 mov rax, QWORD PTR $T1[rbp] - 0007e 48 89 45 08 mov QWORD PTR Block$[rbp], rax - -; 17 : if (!Block) - - 00082 48 83 7d 08 00 cmp QWORD PTR Block$[rbp], 0 - 00087 75 04 jne SHORT $LN2@NcEmitNopG - -; 18 : return NULL; - - 00089 33 c0 xor eax, eax - 0008b eb 2e jmp SHORT $LN1@NcEmitNopG $LN2@NcEmitNopG: -; 19 : -; 20 : while (Count) +; 15 : while (Count) - 0008d 83 bd 40 01 00 + 00046 83 bd e0 00 00 00 00 cmp DWORD PTR Count$[rbp], 0 - 00094 74 21 je SHORT $LN3@NcEmitNopG + 0004d 74 24 je SHORT $LN3@NcEmitNopG -; 21 : { -; 22 : NcAppendToBlock(Block, NcEmitNop()); +; 16 : { +; 17 : NcAppendToBlock(Block, NcEmitNop()); - 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 + 0004f e8 00 00 00 00 call ?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ ; NcEmitNop + 00054 48 8b d0 mov rdx, rax + 00057 48 8b 8d e8 00 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 0005e e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock -; 23 : Count--; +; 18 : Count--; - 000a7 8b 85 40 01 00 + 00063 8b 85 e0 00 00 00 mov eax, DWORD PTR Count$[rbp] - 000ad ff c8 dec eax - 000af 89 85 40 01 00 + 00069 ff c8 dec eax + 0006b 89 85 e0 00 00 00 mov DWORD PTR Count$[rbp], eax -; 24 : } +; 19 : } - 000b5 eb d6 jmp SHORT $LN2@NcEmitNopG + 00071 eb d3 jmp SHORT $LN2@NcEmitNopG $LN3@NcEmitNopG: -; 25 : -; 26 : return Block; +; 20 : return TRUE; - 000b7 48 8b 45 08 mov rax, QWORD PTR Block$[rbp] + 00073 b8 01 00 00 00 mov eax, 1 $LN1@NcEmitNopG: -; 27 : } +; 21 : } - 000bb 48 8d a5 28 01 - 00 00 lea rsp, QWORD PTR [rbp+296] - 000c2 5f pop rdi - 000c3 5d pop rbp - 000c4 c3 ret 0 -?NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z ENDP ; NcEmitNopGroup + 00078 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 +?NcEmitNopGroup@@YAHKPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; NcEmitNopGroup _TEXT ENDS -; COMDAT text$x -text$x SEGMENT -Block$ = 8 -$T1 = 232 -$T2 = 264 -tv76 = 280 -Count$ = 320 -?dtor$0@?0??NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `NcEmitNopGroup'::`1'::dtor$0 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 ba 30 00 00 00 mov edx, 48 ; 00000030H - 00019 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR $T2[rbp] - 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete - 00025 48 83 c4 28 add rsp, 40 ; 00000028H - 00029 5f pop rdi - 0002a 5d pop rbp - 0002b c3 ret 0 -?dtor$0@?0??NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `NcEmitNopGroup'::`1'::dtor$0 -text$x ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; COMDAT text$x -text$x SEGMENT -Block$ = 8 -$T1 = 232 -$T2 = 264 -tv76 = 280 -Count$ = 320 -?dtor$0@?0??NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z@4HA PROC ; `NcEmitNopGroup'::`1'::dtor$0 - 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx - 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx - 0000a 55 push rbp - 0000b 57 push rdi - 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H - 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] - 00014 ba 30 00 00 00 mov edx, 48 ; 00000030H - 00019 48 8b 8d 08 01 - 00 00 mov rcx, QWORD PTR $T2[rbp] - 00020 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete - 00025 48 83 c4 28 add rsp, 40 ; 00000028H - 00029 5f pop rdi - 0002a 5d pop rbp - 0002b c3 ret 0 -?dtor$0@?0??NcEmitNopGroup@@YAPEAU_NATIVE_CODE_BLOCK@@K@Z@4HA ENDP ; `NcEmitNopGroup'::`1'::dtor$0 -text$x ENDS -; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp ; COMDAT ?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ _TEXT SEGMENT RawData$ = 4 @@ -663,89 +571,79 @@ $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 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 + 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 00 00 mov rax, QWORD PTR __security_cookie - 00027 48 33 c5 xor rax, rbp - 0002a 48 89 85 40 01 + 00025 48 33 c5 xor rax, rbp + 00028 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00031 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__52D0D2F0_Nop@cpp - 00038 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0002f 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__0A9363B8_Nop@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : UCHAR RawData[] = { 0x90 }; - 0003d c6 45 04 90 mov BYTE PTR RawData$[rbp], 144 ; 00000090H + 0003b 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); +; 6 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, 1, TRUE); - 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 + 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 00 00 mov QWORD PTR $T5[rbp], rax - 00052 48 83 bd 28 01 + 00050 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0005a 74 2c je SHORT $LN3@NcEmitNop - 0005c c7 44 24 20 00 - 00 00 00 mov DWORD PTR [rsp+32], 0 - 00064 41 b9 01 00 00 + 00058 74 2c je SHORT $LN3@NcEmitNop + 0005a c7 44 24 20 01 + 00 00 00 mov DWORD PTR [rsp+32], 1 + 00062 41 b9 01 00 00 00 mov r9d, 1 - 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 + 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 00 00 mov rcx, QWORD PTR $T5[rbp] - 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 + 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 00 00 mov QWORD PTR tv79[rbp], rax - 00086 eb 0b jmp SHORT $LN4@NcEmitNop + 00084 eb 0b jmp SHORT $LN4@NcEmitNop $LN3@NcEmitNop: - 00088 48 c7 85 38 01 + 00086 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@NcEmitNop: - 00093 48 8b 85 38 01 + 00091 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 0009a 48 89 85 08 01 + 00098 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000a1 48 8b 85 08 01 + 0009f 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000a8 48 89 45 28 mov QWORD PTR Link$[rbp], rax - -; 7 : XedDecode(&Link->XedInstruction, Link->RawData, 1); - - 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 - 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 + 000a6 48 89 45 28 mov QWORD PTR Link$[rbp], rax +; 7 : //XedDecode(&Link->XedInstruction, Link->RawData, 1); ; 8 : return Link; - 000ca 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] + 000aa 48 8b 45 28 mov rax, QWORD PTR Link$[rbp] ; 9 : } - 000ce 48 8b f8 mov rdi, rax - 000d1 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 000d5 48 8d 15 00 00 + 000ae 48 8b f8 mov rdi, rax + 000b1 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 000b5 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ$rtcFrameData - 000dc e8 00 00 00 00 call _RTC_CheckStackVars - 000e1 48 8b c7 mov rax, rdi - 000e4 48 8b 8d 40 01 + 000bc e8 00 00 00 00 call _RTC_CheckStackVars + 000c1 48 8b c7 mov rax, rdi + 000c4 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000eb 48 33 cd xor rcx, rbp - 000ee e8 00 00 00 00 call __security_check_cookie - 000f3 48 8d a5 58 01 + 000cb 48 33 cd xor rcx, rbp + 000ce e8 00 00 00 00 call __security_check_cookie + 000d3 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 000fa 5f pop rdi - 000fb 5d pop rbp - 000fc c3 ret 0 + 000da 5f pop rdi + 000db 5d pop rbp + 000dc c3 ret 0 ?NcEmitNop@@YAPEAU_NATIVE_CODE_LINK@@XZ ENDP ; NcEmitNop _TEXT ENDS ; COMDAT text$x @@ -800,7 +698,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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -811,7 +709,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -823,141 +721,147 @@ $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 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 + 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 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -968,7 +872,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -980,141 +884,147 @@ $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 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 + 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 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1125,7 +1035,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1136,98 +1046,104 @@ $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 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 + 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 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 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 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 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 $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 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 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de 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.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -1244,73 +1160,79 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 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__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1329,7 +1251,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : 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 @@ -1340,251 +1262,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 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 + 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 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 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 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 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 -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 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 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 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 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 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 -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 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 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1607,34 +1529,40 @@ $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 8d 0d 00 00 + 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:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 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 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1651,18 +1579,25 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1677,18 +1612,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1703,18 +1645,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Nop.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Nop.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1727,14 +1676,21 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 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 3ae9beb..1fdad70 100644 --- a/CodeVirtualizer/x64/Debug/Obfuscator.cod +++ b/CodeVirtualizer/x64/Debug/Obfuscator.cod @@ -1,8 +1,3793 @@ -; Listing generated by Microsoft (R) Optimizing Compiler Version 19.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 include listing.inc INCLUDELIB MSVCRTD INCLUDELIB OLDNAMES +msvcjmc SEGMENT +__B2D2BA86_ctype@h DB 01H +__79C7FC57_basetsd@h DB 01H +__1FEB9909_corecrt_memcpy_s@h DB 01H +__A751F051_corecrt_memory@h DB 01H +__9200769A_corecrt_wstring@h DB 01H +__32E5F013_string@h DB 01H +__D545DD43_guiddef@h DB 01H +__D5DDFBF3_winnt@h DB 01H +__439612F0_processthreadsapi@h DB 01H +__5733279A_memoryapi@h DB 01H +__D4435474_winerror@h DB 01H +__B3ED30D4_winbase@h DB 01H +__DB057BA3_winuser@h DB 01H +__A7113148_winioctl@h DB 01H +__B49664B7_stdlib@h DB 01H +__EC5BC72C_propidl@h DB 01H +__6DA674A0_oleauto@h DB 01H +__A118E6DC_stralign@h DB 01H +__8906660C_vcruntime_new@h DB 01H +__A2143F22_corecrt_stdio_config@h DB 01H +__829E1958_corecrt_wstdio@h DB 01H +__6DFAE8B8_stdio@h DB 01H +__C6E16F6F_corecrt_wconio@h DB 01H +__6D390390_corecrt_wio@h DB 01H +__1157D6BA_corecrt_wtime@h DB 01H +__1DC1E279_stat@h DB 01H +__93DC0B45_wchar@h DB 01H +__5DDA4519_cstddef DB 01H +__741AE07E_corecrt_math@h DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_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 +__A0B61CF9_time@h DB 01H +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_xed-decoded-inst-api@h DB 01H +__135BC3AC_Obfuscator@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 +msvcjmc ENDS +PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ; __empty_global_delete +PUBLIC ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ; __empty_global_delete +PUBLIC wmemcpy +PUBLIC ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ; std::_Adjust_manually_vector_aligned +PUBLIC ?_Orphan_all@_Container_base12@std@@QEAAXXZ ; std::_Container_base12::_Orphan_all +PUBLIC ??$_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 ??$_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 ?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfObfuscate +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 ?__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@_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 ?__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@_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 ??3@YAXPEAX_K@Z:PROC ; operator delete +EXTRN __imp__invalid_parameter:PROC +EXTRN memcpy:PROC +EXTRN __imp_wcslen:PROC +EXTRN strlen:PROC +EXTRN __imp__calloc_dbg:PROC +EXTRN __imp__CrtDbgReport:PROC +EXTRN __imp_??0_Lockit@std@@QEAA@H@Z:PROC +EXTRN __imp_??1_Lockit@std@@QEAA@XZ:PROC +EXTRN ?_Xbad_alloc@std@@YAXXZ:PROC ; std::_Xbad_alloc +EXTRN _Mbrtowc:PROC +EXTRN __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ:PROC +EXTRN __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ:PROC +EXTRN __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ:PROC +EXTRN ??0_NATIVE_CODE_BLOCK@@QEAA@XZ:PROC ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK +EXTRN ?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z:PROC ; NcCountInstructions +EXTRN ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z:PROC ; NcGenUnusedLabelId +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 +EXTRN __CheckForDebuggerJustMyCode:PROC +EXTRN __CxxFrameHandler4:PROC +EXTRN __GSHandlerCheck:PROC +EXTRN __GSHandlerCheck_EH4:PROC +EXTRN __security_check_cookie:PROC +EXTRN __security_cookie:QWORD +; COMDAT pdata +pdata SEGMENT +$pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 + DD imagerel $LN3+65 + 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 $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 $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 $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 $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 $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 + DD imagerel $unwind$?_Orphan_all@_Container_base12@std@@QEAAXXZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD imagerel $LN12 + DD imagerel $LN12+584 + 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 $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 $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 $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 $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$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD imagerel $LN3 + DD imagerel $LN3+100 + 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 $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 $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 $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 $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 $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 $unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN15 + DD imagerel $LN15+816 + DD imagerel $unwind$?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$0@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD imagerel ?dtor$0@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA + DD imagerel ?dtor$0@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA+39 + DD imagerel $unwind$?dtor$0@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$1@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD imagerel ?dtor$1@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA + DD imagerel ?dtor$1@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA+39 + DD imagerel $unwind$?dtor$1@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$2@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD imagerel ?dtor$2@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA + DD imagerel ?dtor$2@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA+39 + DD imagerel $unwind$?dtor$2@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA +pdata ENDS +; COMDAT pdata +pdata SEGMENT +$pdata$?dtor$3@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD imagerel ?dtor$3@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA + DD imagerel ?dtor$3@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA+39 + DD imagerel $unwind$?dtor$3@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA +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 $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 $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 $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 $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 $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 $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 $unwind$?deallocate@?$_Default_allocator_traits@V?$allocator@U_Container_proxy@std@@@std@@@std@@SAXAEAV?$allocator@U_Container_proxy@std@@@2@QEAU_Container_proxy@2@_K@Z +pdata ENDS +; COMDAT rtc$TMZ +rtc$TMZ SEGMENT +_RTC_Shutdown.rtc$TMZ DQ FLAT:_RTC_Shutdown +rtc$TMZ ENDS +; COMDAT rtc$IMZ +rtc$IMZ SEGMENT +_RTC_InitBase.rtc$IMZ DQ FLAT:_RTC_InitBase +rtc$IMZ ENDS +; COMDAT ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ +CONST SEGMENT +??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ DB ':' + DB 00H, 'A', 00H, 'M', 00H, ':', 00H, 'a', 00H, 'm', 00H, ':', 00H + DB 'P', 00H, 'M', 00H, ':', 00H, 'p', 00H, 'm', 00H, 00H, 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ +CONST SEGMENT +??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' +CONST ENDS +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +CONST SEGMENT +??_C@_0GI@LHMPPKJI@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' +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@ +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' +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@FEEOBALC@?$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' + 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, '7', 00H, '.', 00H, '2', 00H, '9', 00H, '1', 00H + DB '1', 00H, '0', 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@ +CONST SEGMENT +??_C@_0GI@JMEOMKJO@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' +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 084H ; `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 + DD 0118231dH + DD 07011001dH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DB 060H + DD imagerel $ip2state$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z DD 025052f19H + DD 01132318H + DD 0700c001dH + DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$??$_Deallocate_plain@V?$allocator@U_Container_proxy@std@@@std@@@std@@YAXAEAV?$allocator@U_Container_proxy@std@@@0@QEAU_Container_proxy@0@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DB 060H + DD imagerel $ip2state$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Deallocate@$0BA@$0A@@std@@YAXPEAX_K@Z DD 025052f19H + 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 +$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 + 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 + 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 + 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 + 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$?dtor$3@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$2@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$1@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?dtor$0@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA DD 031001H + DD 0700c4210H + DD 0500bH +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$ip2state$?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z DB 012H + DB 00H + DB 00H + DB 'E', 04H + DB 02H + DB 01aH + DB 04H + DB '-', 03H + DB 02H + DB 01aH + DB 00H + DB 't' + DB 06H + DB 01aH + DB 08H + DB 0c5H, 02H + DB 06H + DB 01aH + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$stateUnwindMap$?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z DB 08H + DB 0eH + DD imagerel ?dtor$0@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA + DB 02eH + DD imagerel ?dtor$1@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA + DB 05eH + DD imagerel ?dtor$2@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA + DB 02eH + DD imagerel ?dtor$3@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z DB 028H + DD imagerel $stateUnwindMap$?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z + DD imagerel $ip2state$?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z DD 025054019H + DD 01132318H + DD 0700c005bH + DD 0500bH + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z + DD 02c2H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z$rtcName$0 DB 04eH ; ObfObfuscate + DB 06fH + DB 074H + DB 054H + DB 061H + DB 06bH + DB 065H + DB 06eH + DB 00H + ORG $+3 +?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z$rtcName$1 DB 054H ; ObfObfuscate + DB 061H + DB 06bH + DB 065H + DB 06eH + DB 00H + ORG $+6 +?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z$rtcName$2 DB 04eH ; ObfObfuscate + DB 06fH + DB 074H + DB 054H + DB 061H + DB 06bH + DB 065H + DB 06eH + DB 00H + ORG $+3 +?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z$rtcName$3 DB 054H ; ObfObfuscate + DB 061H + DB 06bH + DB 065H + DB 06eH + DB 00H + ORG $+6 +?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z$rtcVarDesc DD 01b8H ; ObfObfuscate + DD 030H + DQ FLAT:?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z$rtcName$3 + DD 0168H + DD 030H + DQ FLAT:?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z$rtcName$2 + DD 0118H + DD 030H + DQ FLAT:?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z$rtcName$1 + DD 0c8H + DD 030H + DQ FLAT:?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z$rtcName$0 + ORG $+192 +?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData DD 04H ; ObfObfuscate + DD 00H + DQ FLAT:?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??1_NATIVE_CODE_BLOCK@@QEAA@XZ DD 025052a01H + 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 + 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 + 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 +$ip2state$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DB 02H + DB 00H + DB 00H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$cppxdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DB 060H + DD imagerel $ip2state$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ DD 025052a19H + DD 010e2313H + DD 07007002fH + DD 05006H + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?_Tidy@?$vector@KV?$allocator@K@std@@@std@@AEAAXXZ +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Destroy@?$vector@KV?$allocator@K@std@@@std@@AEAAXPEAK0@Z DD 025053401H + DD 0118231dH + DD 07011001dH + DD 05010H +xdata 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 + DD 010e2313H + DD 070070029H + DD 05006H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ + DD 013bH +xdata ENDS +; COMDAT CONST +CONST SEGMENT +??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcName$0 DB 024H ; std::vector >::~vector > + DB 053H + DB 031H + DB 00H + 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 +??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcFrameData DD 01H ; std::vector >::~vector > + DD 00H + DQ FLAT:??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ$rtcVarDesc +CONST ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?deallocate@?$allocator@K@std@@QEAAXQEAK_K@Z DD 025053401H + 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 + 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 + DD 0119231eH + DD 070120026H + DD 050106011H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H + DD 0118331dH + DD 07011002bH + DD 05010H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H + DD 010e3313H + DD 070070027H + DD 05006H +xdata ENDS +; COMDAT xdata +xdata SEGMENT +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H + DD 0118331dH + DD 070110047H + DD 05010H + DD imagerel __GSHandlerCheck + DD 0228H +xdata ENDS +; COMDAT CONST +CONST SEGMENT +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$0 DB 05fH ; std::_Maklocstr + DB 057H + DB 063H + DB 00H +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$1 DB 05fH ; std::_Maklocstr + DB 04dH + DB 062H + DB 073H + DB 074H + DB 031H + DB 00H + ORG $+1 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$2 DB 05fH ; std::_Maklocstr + DB 04dH + DB 062H + DB 073H + DB 074H + DB 032H + DB 00H + ORG $+13 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcVarDesc DD 0158H ; std::_Maklocstr + DD 08H + DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$2 + DD 0f8H + DD 08H + DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$1 + DD 0d4H + DD 02H + DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcName$0 + ORG $+144 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData DD 03H ; std::_Maklocstr + DD 00H + DQ FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcVarDesc +CONST 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 + DD 010e2313H + DD 070070025H + DD 05006H + DD imagerel __GSHandlerCheck_EH4 + DD imagerel $cppxdata$?_Orphan_all@_Container_base12@std@@QEAAXXZ + DD 011bH +xdata ENDS +; COMDAT CONST +CONST SEGMENT +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 DB 05fH ; std::_Container_base12::_Orphan_all + 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 + DD 04H + DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcName$0 + ORG $+48 +?_Orphan_all@_Container_base12@std@@QEAAXXZ$rtcFrameData DD 01H ; std::_Container_base12::_Orphan_all + DD 00H + DQ FLAT:?_Orphan_all@_Container_base12@std@@QEAAXXZ$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 +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 + 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 + 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 + 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 + 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 +_TEXT SEGMENT +__JustMyCode_Default PROC ; COMDAT + 00000 c2 00 00 ret 0 +__JustMyCode_Default ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 +_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) { + +$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 + +; 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 + 00 00 10 imul rax, QWORD PTR _Count$[rbp], 16 + 00048 48 8b d0 mov rdx, rax + 0004b 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> + +; 690 : } + + 00057 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 +?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 +; 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 { + +$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 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 + 00 mov r8d, 1 + 00041 48 8b 95 e8 00 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 00048 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 + +; 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 : } + + 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 +??$_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 +; 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 { + +$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 + +; 217 : _Adjust_manually_vector_aligned(_Ptr, _Bytes); + + 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: + +; 218 : } +; 219 : #endif // defined(_M_IX86) || defined(_M_X64) +; 220 : +; 221 : ::operator delete(_Ptr, _Bytes); + + 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 + +; 222 : } + + 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> +_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 + +; 955 : void _Destroy_range(_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 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 > +_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 ??$_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 { + +$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 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 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 00042 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 + +; 1031 : } + + 0004f 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 +??$_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 +; COMDAT ??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z +_TEXT SEGMENT +_Old_val$ = 8 +_Val$ = 256 +_New_val$ = 264 +??$exchange@PEAU_Container_proxy@std@@$$T@std@@YAPEAU_Container_proxy@0@AEAPEAU10@$$QEA$$T@Z PROC ; std::exchange, COMDAT + +; 597 : 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 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 + +; 598 : // assign _New_val to _Val, return previous _Val +; 599 : _Ty _Old_val = static_cast<_Ty&&>(_Val); + + 0003b 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 + +; 600 : _Val = static_cast<_Other&&>(_New_val); + + 00049 48 8b 85 00 01 + 00 00 mov rax, QWORD PTR _Val$[rbp] + 00050 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 + +; 601 : return _Old_val; + + 0005d 48 8b 45 08 mov rax, QWORD PTR _Old_val$[rbp] + +; 602 : } + + 00061 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 +??$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 +; 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 {} + +$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 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 + 00 00 mov rax, QWORD PTR this$[rbp] + 00042 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 +??$?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\Obfuscator.cpp +; COMDAT ?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z +_TEXT SEGMENT +InstructionCount$ = 4 +TargetCount$7 = 36 +CurrentCount$8 = 68 +NewBlockStart$9 = 104 +T$10 = 136 +NotTaken$11 = 168 +Taken$12 = 248 +NotTaken$13 = 328 +Taken$14 = 408 +tv176 = 660 +tv141 = 660 +tv174 = 664 +tv139 = 664 +__$ArrayPad$ = 672 +Obf$ = 720 +Block$ = 728 +?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z PROC ; ObfObfuscate, COMDAT + +; 7 : { + +$LN15: + 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 d8 02 + 00 00 sub rsp, 728 ; 000002d8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 8b fc mov rdi, rsp + 0001b b9 b6 00 00 00 mov ecx, 182 ; 000000b6H + 00020 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH + 00025 f3 ab rep stosd + 00027 48 8b 8c 24 f8 + 02 00 00 mov rcx, QWORD PTR [rsp+760] + 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 a0 02 + 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax + 00040 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__135BC3AC_Obfuscator@cpp + 00047 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 8 : ULONG InstructionCount = NcCountInstructions(Block); + + 0004c 48 8b 8d d8 02 + 00 00 mov rcx, QWORD PTR Block$[rbp] + 00053 e8 00 00 00 00 call ?NcCountInstructions@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcCountInstructions + 00058 89 45 04 mov DWORD PTR InstructionCount$[rbp], eax + +; 9 : if (InstructionCount <= Obf->MinInstCount) + + 0005b 48 8b 85 d0 02 + 00 00 mov rax, QWORD PTR Obf$[rbp] + 00062 8b 00 mov eax, DWORD PTR [rax] + 00064 39 45 04 cmp DWORD PTR InstructionCount$[rbp], eax + 00067 77 05 ja SHORT $LN5@ObfObfusca + +; 10 : { +; 11 : +; 12 : } + + 00069 e9 99 02 00 00 jmp $LN6@ObfObfusca +$LN5@ObfObfusca: + +; 13 : else +; 14 : { +; 15 : ULONG TargetCount = InstructionCount / 2; + + 0006e 33 d2 xor edx, edx + 00070 8b 45 04 mov eax, DWORD PTR InstructionCount$[rbp] + 00073 b9 02 00 00 00 mov ecx, 2 + 00078 f7 f1 div ecx + 0007a 89 45 24 mov DWORD PTR TargetCount$7[rbp], eax + +; 16 : ULONG CurrentCount = 0; + + 0007d c7 45 44 00 00 + 00 00 mov DWORD PTR CurrentCount$8[rbp], 0 + +; 17 : PNATIVE_CODE_LINK NewBlockStart = Block->Start; + + 00084 48 8b 85 d8 02 + 00 00 mov rax, QWORD PTR Block$[rbp] + 0008b 48 8b 00 mov rax, QWORD PTR [rax] + 0008e 48 89 45 68 mov QWORD PTR NewBlockStart$9[rbp], rax + +; 18 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next;) + + 00092 48 8b 85 d8 02 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00099 48 8b 00 mov rax, QWORD PTR [rax] + 0009c 48 89 85 88 00 + 00 00 mov QWORD PTR T$10[rbp], rax +$LN2@ObfObfusca: + 000a3 48 83 bd 88 00 + 00 00 00 cmp QWORD PTR T$10[rbp], 0 + 000ab 0f 84 67 01 00 + 00 je $LN3@ObfObfusca + 000b1 48 8b 85 d8 02 + 00 00 mov rax, QWORD PTR Block$[rbp] + 000b8 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 000bc 48 8b 00 mov rax, QWORD PTR [rax] + 000bf 48 39 85 88 00 + 00 00 cmp QWORD PTR T$10[rbp], rax + 000c6 0f 84 4c 01 00 + 00 je $LN3@ObfObfusca + +; 19 : { +; 20 : if (T->Flags & CODE_FLAG_IS_LABEL) + + 000cc 48 8b 85 88 00 + 00 00 mov rax, QWORD PTR T$10[rbp] + 000d3 8b 40 18 mov eax, DWORD PTR [rax+24] + 000d6 83 e0 01 and eax, 1 + 000d9 85 c0 test eax, eax + 000db 74 13 je SHORT $LN7@ObfObfusca + +; 21 : { +; 22 : T = T->Next; + + 000dd 48 8b 85 88 00 + 00 00 mov rax, QWORD PTR T$10[rbp] + 000e4 48 8b 00 mov rax, QWORD PTR [rax] + 000e7 48 89 85 88 00 + 00 00 mov QWORD PTR T$10[rbp], rax + +; 23 : continue; + + 000ee eb b3 jmp SHORT $LN2@ObfObfusca +$LN7@ObfObfusca: + +; 24 : } +; 25 : +; 26 : ++CurrentCount; + + 000f0 8b 45 44 mov eax, DWORD PTR CurrentCount$8[rbp] + 000f3 ff c0 inc eax + 000f5 89 45 44 mov DWORD PTR CurrentCount$8[rbp], eax + +; 27 : +; 28 : if (CurrentCount == TargetCount) + + 000f8 8b 45 24 mov eax, DWORD PTR TargetCount$7[rbp] + 000fb 39 45 44 cmp DWORD PTR CurrentCount$8[rbp], eax + 000fe 0f 85 fe 00 00 + 00 jne $LN8@ObfObfusca + +; 29 : { +; 30 : NATIVE_CODE_BLOCK NotTaken, Taken; + + 00104 48 8d 8d a8 00 + 00 00 lea rcx, QWORD PTR NotTaken$11[rbp] + 0010b e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 00110 90 npad 1 + 00111 48 8d 8d f8 00 + 00 00 lea rcx, QWORD PTR Taken$12[rbp] + 00118 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 0011d 90 npad 1 + +; 31 : ObfCreateOpaqueBranches(NewBlockStart, T, &NotTaken, &Taken); + + 0011e 4c 8d 8d f8 00 + 00 00 lea r9, QWORD PTR Taken$12[rbp] + 00125 4c 8d 85 a8 00 + 00 00 lea r8, QWORD PTR NotTaken$11[rbp] + 0012c 48 8b 95 88 00 + 00 00 mov rdx, QWORD PTR T$10[rbp] + 00133 48 8b 4d 68 mov rcx, QWORD PTR NewBlockStart$9[rbp] + 00137 e8 00 00 00 00 call ?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z ; ObfCreateOpaqueBranches + +; 32 : ObfObfuscate(Obf, &NotTaken); + + 0013c 48 8d 95 a8 00 + 00 00 lea rdx, QWORD PTR NotTaken$11[rbp] + 00143 48 8b 8d d0 02 + 00 00 mov rcx, QWORD PTR Obf$[rbp] + 0014a e8 00 00 00 00 call ?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfObfuscate + +; 33 : ObfObfuscate(Obf, &Taken); + + 0014f 48 8d 95 f8 00 + 00 00 lea rdx, QWORD PTR Taken$12[rbp] + 00156 48 8b 8d d0 02 + 00 00 mov rcx, QWORD PTR Obf$[rbp] + 0015d e8 00 00 00 00 call ?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfObfuscate + +; 34 : ObfCombineOpaqueBranches(&NotTaken, &Taken, NcGenUnusedLabelId(Obf->GlobalBlock), NcGenUnusedLabelId(Obf->GlobalBlock)); + + 00162 48 8b 85 d0 02 + 00 00 mov rax, QWORD PTR Obf$[rbp] + 00169 48 8b 48 08 mov rcx, QWORD PTR [rax+8] + 0016d e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId + 00172 89 85 94 02 00 + 00 mov DWORD PTR tv141[rbp], eax + 00178 48 8b 85 d0 02 + 00 00 mov rax, QWORD PTR Obf$[rbp] + 0017f 48 8b 48 08 mov rcx, QWORD PTR [rax+8] + 00183 e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId + 00188 89 85 98 02 00 + 00 mov DWORD PTR tv139[rbp], eax + 0018e 44 8b 8d 94 02 + 00 00 mov r9d, DWORD PTR tv141[rbp] + 00195 44 8b 85 98 02 + 00 00 mov r8d, DWORD PTR tv139[rbp] + 0019c 48 8d 95 f8 00 + 00 00 lea rdx, QWORD PTR Taken$12[rbp] + 001a3 48 8d 8d a8 00 + 00 00 lea rcx, QWORD PTR NotTaken$11[rbp] + 001aa e8 00 00 00 00 call ?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z ; ObfCombineOpaqueBranches + +; 35 : ObfInsertOpaqueBranchBlock(NewBlockStart, T, &NotTaken); + + 001af 4c 8d 85 a8 00 + 00 00 lea r8, QWORD PTR NotTaken$11[rbp] + 001b6 48 8b 95 88 00 + 00 00 mov rdx, QWORD PTR T$10[rbp] + 001bd 48 8b 4d 68 mov rcx, QWORD PTR NewBlockStart$9[rbp] + 001c1 e8 00 00 00 00 call ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfInsertOpaqueBranchBlock + +; 36 : T = NotTaken.End; + + 001c6 48 8b 85 b0 00 + 00 00 mov rax, QWORD PTR NotTaken$11[rbp+8] + 001cd 48 89 85 88 00 + 00 00 mov QWORD PTR T$10[rbp], rax + +; 37 : NewBlockStart = T->Next; + + 001d4 48 8b 85 88 00 + 00 00 mov rax, QWORD PTR T$10[rbp] + 001db 48 8b 00 mov rax, QWORD PTR [rax] + 001de 48 89 45 68 mov QWORD PTR NewBlockStart$9[rbp], rax + +; 38 : CurrentCount = 0; + + 001e2 c7 45 44 00 00 + 00 00 mov DWORD PTR CurrentCount$8[rbp], 0 + +; 39 : } + + 001e9 48 8d 8d f8 00 + 00 00 lea rcx, QWORD PTR Taken$12[rbp] + 001f0 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 001f5 90 npad 1 + 001f6 48 8d 8d a8 00 + 00 00 lea rcx, QWORD PTR NotTaken$11[rbp] + 001fd e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ +$LN8@ObfObfusca: + +; 40 : T = T->Next; + + 00202 48 8b 85 88 00 + 00 00 mov rax, QWORD PTR T$10[rbp] + 00209 48 8b 00 mov rax, QWORD PTR [rax] + 0020c 48 89 85 88 00 + 00 00 mov QWORD PTR T$10[rbp], rax + +; 41 : } + + 00213 e9 8b fe ff ff jmp $LN2@ObfObfusca +$LN3@ObfObfusca: + +; 42 : if (NewBlockStart) + + 00218 48 83 7d 68 00 cmp QWORD PTR NewBlockStart$9[rbp], 0 + 0021d 0f 84 e4 00 00 + 00 je $LN6@ObfObfusca + +; 43 : { +; 44 : NATIVE_CODE_BLOCK NotTaken, Taken; + + 00223 48 8d 8d 48 01 + 00 00 lea rcx, QWORD PTR NotTaken$13[rbp] + 0022a e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 0022f 90 npad 1 + 00230 48 8d 8d 98 01 + 00 00 lea rcx, QWORD PTR Taken$14[rbp] + 00237 e8 00 00 00 00 call ??0_NATIVE_CODE_BLOCK@@QEAA@XZ ; _NATIVE_CODE_BLOCK::_NATIVE_CODE_BLOCK + 0023c 90 npad 1 + +; 45 : ObfCreateOpaqueBranches(NewBlockStart, Block->End, &NotTaken, &Taken); + + 0023d 4c 8d 8d 98 01 + 00 00 lea r9, QWORD PTR Taken$14[rbp] + 00244 4c 8d 85 48 01 + 00 00 lea r8, QWORD PTR NotTaken$13[rbp] + 0024b 48 8b 85 d8 02 + 00 00 mov rax, QWORD PTR Block$[rbp] + 00252 48 8b 50 08 mov rdx, QWORD PTR [rax+8] + 00256 48 8b 4d 68 mov rcx, QWORD PTR NewBlockStart$9[rbp] + 0025a e8 00 00 00 00 call ?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z ; ObfCreateOpaqueBranches + +; 46 : ObfObfuscate(Obf, &NotTaken); + + 0025f 48 8d 95 48 01 + 00 00 lea rdx, QWORD PTR NotTaken$13[rbp] + 00266 48 8b 8d d0 02 + 00 00 mov rcx, QWORD PTR Obf$[rbp] + 0026d e8 00 00 00 00 call ?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfObfuscate + +; 47 : ObfObfuscate(Obf, &Taken); + + 00272 48 8d 95 98 01 + 00 00 lea rdx, QWORD PTR Taken$14[rbp] + 00279 48 8b 8d d0 02 + 00 00 mov rcx, QWORD PTR Obf$[rbp] + 00280 e8 00 00 00 00 call ?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfObfuscate + +; 48 : ObfCombineOpaqueBranches(&NotTaken, &Taken, NcGenUnusedLabelId(Obf->GlobalBlock), NcGenUnusedLabelId(Obf->GlobalBlock)); + + 00285 48 8b 85 d0 02 + 00 00 mov rax, QWORD PTR Obf$[rbp] + 0028c 48 8b 48 08 mov rcx, QWORD PTR [rax+8] + 00290 e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId + 00295 89 85 94 02 00 + 00 mov DWORD PTR tv176[rbp], eax + 0029b 48 8b 85 d0 02 + 00 00 mov rax, QWORD PTR Obf$[rbp] + 002a2 48 8b 48 08 mov rcx, QWORD PTR [rax+8] + 002a6 e8 00 00 00 00 call ?NcGenUnusedLabelId@@YAKPEAU_NATIVE_CODE_BLOCK@@@Z ; NcGenUnusedLabelId + 002ab 89 85 98 02 00 + 00 mov DWORD PTR tv174[rbp], eax + 002b1 44 8b 8d 94 02 + 00 00 mov r9d, DWORD PTR tv176[rbp] + 002b8 44 8b 85 98 02 + 00 00 mov r8d, DWORD PTR tv174[rbp] + 002bf 48 8d 95 98 01 + 00 00 lea rdx, QWORD PTR Taken$14[rbp] + 002c6 48 8d 8d 48 01 + 00 00 lea rcx, QWORD PTR NotTaken$13[rbp] + 002cd e8 00 00 00 00 call ?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z ; ObfCombineOpaqueBranches + +; 49 : ObfInsertOpaqueBranchBlock(NewBlockStart, Block->End, &NotTaken); + + 002d2 4c 8d 85 48 01 + 00 00 lea r8, QWORD PTR NotTaken$13[rbp] + 002d9 48 8b 85 d8 02 + 00 00 mov rax, QWORD PTR Block$[rbp] + 002e0 48 8b 50 08 mov rdx, QWORD PTR [rax+8] + 002e4 48 8b 4d 68 mov rcx, QWORD PTR NewBlockStart$9[rbp] + 002e8 e8 00 00 00 00 call ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z ; ObfInsertOpaqueBranchBlock + 002ed 90 npad 1 + +; 50 : } + + 002ee 48 8d 8d 98 01 + 00 00 lea rcx, QWORD PTR Taken$14[rbp] + 002f5 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ + 002fa 90 npad 1 + 002fb 48 8d 8d 48 01 + 00 00 lea rcx, QWORD PTR NotTaken$13[rbp] + 00302 e8 00 00 00 00 call ??1_NATIVE_CODE_BLOCK@@QEAA@XZ +$LN6@ObfObfusca: + +; 51 : } +; 52 : +; 53 : } + + 00307 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0030b 48 8d 15 00 00 + 00 00 lea rdx, OFFSET FLAT:?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z$rtcFrameData + 00312 e8 00 00 00 00 call _RTC_CheckStackVars + 00317 48 8b 8d a0 02 + 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] + 0031e 48 33 cd xor rcx, rbp + 00321 e8 00 00 00 00 call __security_check_cookie + 00326 48 8d a5 b8 02 + 00 00 lea rsp, QWORD PTR [rbp+696] + 0032d 5f pop rdi + 0032e 5d pop rbp + 0032f c3 ret 0 +?ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; ObfObfuscate +_TEXT ENDS +; COMDAT text$x +text$x SEGMENT +InstructionCount$ = 4 +TargetCount$7 = 36 +CurrentCount$8 = 68 +NewBlockStart$9 = 104 +T$10 = 136 +NotTaken$11 = 168 +Taken$12 = 248 +NotTaken$13 = 328 +Taken$14 = 408 +tv176 = 660 +tv141 = 660 +tv174 = 664 +tv139 = 664 +__$ArrayPad$ = 672 +Obf$ = 720 +Block$ = 728 +?dtor$0@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `ObfObfuscate'::`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 8d a8 00 + 00 00 lea rcx, QWORD PTR NotTaken$11[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 +?dtor$0@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `ObfObfuscate'::`1'::dtor$0 +text$x ENDS +; COMDAT text$x +text$x SEGMENT +InstructionCount$ = 4 +TargetCount$7 = 36 +CurrentCount$8 = 68 +NewBlockStart$9 = 104 +T$10 = 136 +NotTaken$11 = 168 +Taken$12 = 248 +NotTaken$13 = 328 +Taken$14 = 408 +tv176 = 660 +tv141 = 660 +tv174 = 664 +tv139 = 664 +__$ArrayPad$ = 672 +Obf$ = 720 +Block$ = 728 +?dtor$1@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `ObfObfuscate'::`1'::dtor$1 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d f8 00 + 00 00 lea rcx, QWORD PTR Taken$12[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 +?dtor$1@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `ObfObfuscate'::`1'::dtor$1 +text$x ENDS +; COMDAT text$x +text$x SEGMENT +InstructionCount$ = 4 +TargetCount$7 = 36 +CurrentCount$8 = 68 +NewBlockStart$9 = 104 +T$10 = 136 +NotTaken$11 = 168 +Taken$12 = 248 +NotTaken$13 = 328 +Taken$14 = 408 +tv176 = 660 +tv141 = 660 +tv174 = 664 +tv139 = 664 +__$ArrayPad$ = 672 +Obf$ = 720 +Block$ = 728 +?dtor$2@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `ObfObfuscate'::`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 48 01 + 00 00 lea rcx, QWORD PTR NotTaken$13[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 +?dtor$2@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `ObfObfuscate'::`1'::dtor$2 +text$x ENDS +; COMDAT text$x +text$x SEGMENT +InstructionCount$ = 4 +TargetCount$7 = 36 +CurrentCount$8 = 68 +NewBlockStart$9 = 104 +T$10 = 136 +NotTaken$11 = 168 +Taken$12 = 248 +NotTaken$13 = 328 +Taken$14 = 408 +tv176 = 660 +tv141 = 660 +tv174 = 664 +tv139 = 664 +__$ArrayPad$ = 672 +Obf$ = 720 +Block$ = 728 +?dtor$3@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `ObfObfuscate'::`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 98 01 + 00 00 lea rcx, QWORD PTR Taken$14[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 +?dtor$3@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `ObfObfuscate'::`1'::dtor$3 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +InstructionCount$ = 4 +TargetCount$7 = 36 +CurrentCount$8 = 68 +NewBlockStart$9 = 104 +T$10 = 136 +NotTaken$11 = 168 +Taken$12 = 248 +NotTaken$13 = 328 +Taken$14 = 408 +tv176 = 660 +tv141 = 660 +tv174 = 664 +tv139 = 664 +__$ArrayPad$ = 672 +Obf$ = 720 +Block$ = 728 +?dtor$0@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `ObfObfuscate'::`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 8d a8 00 + 00 00 lea rcx, QWORD PTR NotTaken$11[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 +?dtor$0@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `ObfObfuscate'::`1'::dtor$0 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +InstructionCount$ = 4 +TargetCount$7 = 36 +CurrentCount$8 = 68 +NewBlockStart$9 = 104 +T$10 = 136 +NotTaken$11 = 168 +Taken$12 = 248 +NotTaken$13 = 328 +Taken$14 = 408 +tv176 = 660 +tv141 = 660 +tv174 = 664 +tv139 = 664 +__$ArrayPad$ = 672 +Obf$ = 720 +Block$ = 728 +?dtor$1@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `ObfObfuscate'::`1'::dtor$1 + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 83 ec 28 sub rsp, 40 ; 00000028H + 00010 48 8d 6a 20 lea rbp, QWORD PTR [rdx+32] + 00014 48 8d 8d f8 00 + 00 00 lea rcx, QWORD PTR Taken$12[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 +?dtor$1@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `ObfObfuscate'::`1'::dtor$1 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +InstructionCount$ = 4 +TargetCount$7 = 36 +CurrentCount$8 = 68 +NewBlockStart$9 = 104 +T$10 = 136 +NotTaken$11 = 168 +Taken$12 = 248 +NotTaken$13 = 328 +Taken$14 = 408 +tv176 = 660 +tv141 = 660 +tv174 = 664 +tv139 = 664 +__$ArrayPad$ = 672 +Obf$ = 720 +Block$ = 728 +?dtor$2@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `ObfObfuscate'::`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 48 01 + 00 00 lea rcx, QWORD PTR NotTaken$13[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 +?dtor$2@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `ObfObfuscate'::`1'::dtor$2 +text$x ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; COMDAT text$x +text$x SEGMENT +InstructionCount$ = 4 +TargetCount$7 = 36 +CurrentCount$8 = 68 +NewBlockStart$9 = 104 +T$10 = 136 +NotTaken$11 = 168 +Taken$12 = 248 +NotTaken$13 = 328 +Taken$14 = 408 +tv176 = 660 +tv141 = 660 +tv174 = 664 +tv139 = 664 +__$ArrayPad$ = 672 +Obf$ = 720 +Block$ = 728 +?dtor$3@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA PROC ; `ObfObfuscate'::`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 98 01 + 00 00 lea rcx, QWORD PTR Taken$14[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 +?dtor$3@?0??ObfObfuscate@@YAXPEAU_OBFUSCATOR@@PEAU_NATIVE_CODE_BLOCK@@@Z@4HA ENDP ; `ObfObfuscate'::`1'::dtor$3 +text$x 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 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 + 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 + 00 00 lea rsp, QWORD PTR [rbp+200] + 00044 5f pop rdi + 00045 5d pop rbp + 00046 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 +; 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 { + +$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:__A58979FC_xmemory + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1344 : return *this; + + 00036 48 8b 85 e0 00 + 00 00 mov rax, QWORD PTR this$[rbp] + +; 1345 : } + + 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 +?_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 +; 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 { + +$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:__BF2A7ACC_vector + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1732 : return _Mypair._Get_first(); + + 00036 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 + +; 1733 : } + + 00046 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 +?_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 +; 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 + +; 1685 : 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 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 + 00 00 mov rax, QWORD PTR this$[rbp] + 0003d 48 89 45 08 mov QWORD PTR _My_data$[rbp], rax + +; 1687 : 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 + +; 1688 : 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 + +; 1689 : 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 + +; 1690 : +; 1691 : _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 + +; 1692 : +; 1693 : 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 + 00 je $LN2@Tidy + +; 1694 : _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 + 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 + +; 1695 : _Getal().deallocate(_Myfirst, static_cast(_Myend - _Myfirst)); + + 00096 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 + 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 + 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 + 00 00 mov QWORD PTR tv86[rbp], rax + 000d3 4c 8b 85 40 01 + 00 00 mov r8, QWORD PTR tv88[rbp] + 000da 48 8b 95 48 01 + 00 00 mov rdx, QWORD PTR tv86[rbp] + 000e1 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 + +; 1696 : +; 1697 : _Myfirst = pointer(); + + 000ed 48 8b 45 28 mov rax, QWORD PTR _Myfirst$[rbp] + 000f1 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + +; 1698 : _Mylast = pointer(); + + 000f8 48 8b 45 48 mov rax, QWORD PTR _Mylast$[rbp] + 000fc 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 + +; 1699 : _Myend = pointer(); + + 00103 48 8b 45 68 mov rax, QWORD PTR _Myend$[rbp] + 00107 48 c7 00 00 00 + 00 00 mov QWORD PTR [rax], 0 +$LN2@Tidy: + +; 1700 : } +; 1701 : } + + 0010e 48 8d a5 58 01 + 00 00 lea rsp, QWORD PTR [rbp+344] + 00115 5f pop rdi + 00116 5d pop rbp + 00117 c3 ret 0 +?_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 +; 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 + +; 1611 : void _Destroy(pointer _First, pointer _Last) { // destroy [_First, _Last) using allocator + +$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:__BF2A7ACC_vector + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + +; 1612 : _Destroy_range(_First, _Last, _Getal()); + + 00040 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 + 00 00 mov rdx, QWORD PTR _Last$[rbp] + 00056 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 > + +; 1613 : } + + 00062 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 +?_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 +; COMDAT ??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ +_TEXT SEGMENT +_Alproxy$ = 8 +$S1$ = 36 +$T4 = 260 +__$ArrayPad$ = 280 +this$ = 320 +??1?$vector@KV?$allocator@K@std@@@std@@QEAA@XZ PROC ; std::vector >::~vector >, COMDAT + +; 672 : ~vector() noexcept { + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 48 01 + 00 00 sub rsp, 328 ; 00000148H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 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 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 + 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 + +; 673 : _Tidy(); + + 00047 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 + +; 674 : #if _ITERATOR_DEBUG_LEVEL != 0 +; 675 : auto&& _Alproxy = _GET_PROXY_ALLOCATOR(_Alty, _Getal()); + + 00053 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 + +; 676 : _Delete_plain_internal(_Alproxy, _STD exchange(_Mypair._Myval2._Myproxy, nullptr)); + + 00073 48 c7 85 04 01 + 00 00 00 00 00 + 00 mov QWORD PTR $T4[rbp], 0 + 0007e 48 8b 85 40 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 00085 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 > + +; 677 : #endif // _ITERATOR_DEBUG_LEVEL != 0 +; 678 : } + + 000a0 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 000a4 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 + 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 + 00 00 lea rsp, QWORD PTR [rbp+296] + 000c7 5f pop rdi + 000c8 5d pop rbp + 000c9 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 +; 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 + +; 801 : void deallocate(_Ty* const _Ptr, const size_t _Count) { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 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 + 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 + 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> + +; 804 : } + + 0005a 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 +?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 +; COMDAT ??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 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 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 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 + +; 178 : +; 179 : 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 + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 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")); + + 000b1 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 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 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 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 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 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 + 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 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 +??$_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 +; COMDAT ??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z +_TEXT SEGMENT +$T1 = 200 +tv93 = 264 +tv85 = 264 +this$ = 304 +__formal$ = 312 +_Lobj$ = 320 +??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z PROC ; std::time_get > >::_Getvals, COMDAT + +; 176 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values + +$LN5: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 66 89 54 24 10 mov WORD PTR [rsp+16], dx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 56 push rsi + 00011 57 push rdi + 00012 48 81 ec 30 01 + 00 00 sub rsp, 304 ; 00000130H + 00019 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001e 48 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 + 00 00 lea rdx, QWORD PTR $T1[rbp] + 00048 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 0004f ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ + 00055 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 + +; 178 : +; 179 : 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 + +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); + + 00071 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00078 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 181 : _Months = + + 00091 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00098 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000ad 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")); + + 000b1 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax + +; 184 : } else { + + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals +$LN2@Getvals: + +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); + + 000cd 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 + 00 00 mov QWORD PTR tv85[rbp], rax + 000df 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 000e6 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ + 000ec 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax + +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); + + 0010b 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 + 00 00 mov QWORD PTR tv93[rbp], rax + 0011d 48 8b 8d 40 01 + 00 00 mov rcx, QWORD PTR _Lobj$[rbp] + 00124 ff 15 00 00 00 + 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ + 0012a 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax + +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); + + 00149 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 + 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 + 00 00 mov rcx, QWORD PTR this$[rbp] + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax +$LN3@Getvals: + +; 188 : } +; 189 : } + + 00170 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 +??$_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 +; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptrnext$1 = 72 +_Ptr$ = 320 +__formal$ = 328 +__formal$ = 336 +??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { + +$LN7: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 58 01 + 00 00 sub rsp, 344 ; 00000158H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 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 + 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 + 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 + 00 call QWORD PTR __imp__calloc_dbg + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + +; 568 : +; 569 : if (!_Ptrdest) { + + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr + +; 570 : _Xbad_alloc(); + + 00082 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) { + + 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 +$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 + 00 00 mov rax, QWORD PTR _Ptr$[rbp] + 000ae 48 ff c0 inc rax + 000b1 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 + +; 574 : *_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 + 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 + +; 575 : } + + 000cf eb c0 jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 576 : +; 577 : return _Ptrdest; + + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN6@Maklocstr: + +; 578 : } + + 000d5 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 +??$_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 +; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z +_TEXT SEGMENT +_Count$ = 8 +_Ptrdest$ = 40 +_Ptr$ = 288 +?_Maklocwcs@std@@YAPEA_WPEB_W@Z PROC ; std::_Maklocwcs, COMDAT + +; 90 : inline wchar_t* _Maklocwcs(const wchar_t* _Ptr) { // copy NTWCS to allocated storage + +$LN4: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec 38 01 + 00 00 sub rsp, 312 ; 00000138H + 0000e 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00013 48 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 + +; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; + + 00036 48 8b 8d 20 01 + 00 00 mov rcx, QWORD PTR _Ptr$[rbp] + 0003d 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 + +; 92 : +; 93 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Count, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); + + 0004a 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 + 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 + 00 call QWORD PTR __imp__calloc_dbg + 00073 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 + +; 96 : _Xbad_alloc(); + + 0007e 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 + 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 + +; 100 : return _Ptrdest; + + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN3@Maklocwcs: + +; 101 : } + + 0009b 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 +?_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 +; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z +_TEXT SEGMENT +_Count$ = 8 +_Count1$ = 40 +_Wchars$ = 72 +_Ptr1$ = 104 +_Bytes$ = 132 +_Wc$ = 164 +_Mbst1$ = 200 +_Ptrdest$ = 232 +_Ptrnext$ = 264 +_Mbst2$ = 296 +__$ArrayPad$ = 504 +_Ptr$ = 544 +__formal$ = 552 +_Cvt$ = 560 +??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT + +; 581 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { + +$LN12: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec 38 02 + 00 00 sub rsp, 568 ; 00000238H + 00018 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 0001d 48 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 + 02 00 00 mov rcx, QWORD PTR [rsp+600] + 00034 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 + 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 + 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 + +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; + + 00064 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 + +; 592 : 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 + 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 + 00087 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 +$LN2@Maklocstr: + 00094 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 + 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 +$LN4@Maklocstr: + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr + +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { + + 000d0 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 + 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 + 00 00 lea rcx, QWORD PTR _Wc$[rbp] + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 + 00 mov DWORD PTR _Bytes$[rbp], eax + 000fd 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 00104 7f 02 jg SHORT $LN8@Maklocstr + +; 594 : break; + + 00106 eb 02 jmp SHORT $LN3@Maklocstr +$LN8@Maklocstr: + +; 595 : } +; 596 : } + + 00108 eb 8a jmp SHORT $LN2@Maklocstr +$LN3@Maklocstr: + +; 597 : +; 598 : ++_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 + +; 599 : +; 600 : 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 + 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 + 00 call QWORD PTR __imp__calloc_dbg + 00139 48 89 85 e8 00 + 00 00 mov QWORD PTR _Ptrdest$[rbp], rax + +; 601 : +; 602 : if (!_Ptrdest) { + + 00140 48 83 bd e8 00 + 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00148 75 05 jne SHORT $LN9@Maklocstr + +; 603 : _Xbad_alloc(); + + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc +$LN9@Maklocstr: + +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; + + 0014f 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] + 00156 48 89 85 08 01 + 00 00 mov QWORD PTR _Ptrnext$[rbp], rax + +; 607 : mbstate_t _Mbst2 = {}; + + 0015d 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 + +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { + + 00170 eb 4d jmp SHORT $LN7@Maklocstr +$LN5@Maklocstr: + 00172 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 + 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] + 0018e 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 + 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 + 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] + 001b4 48 83 c0 02 add rax, 2 + 001b8 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 + +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { + + 001c6 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 + 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 + 00 00 mov rdx, QWORD PTR _Ptr$[rbp] + 001e4 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 + 00 mov DWORD PTR _Bytes$[rbp], eax + 001f6 83 bd 84 00 00 + 00 00 cmp DWORD PTR _Bytes$[rbp], 0 + 001fd 7f 02 jg SHORT $LN10@Maklocstr + +; 611 : break; + + 001ff eb 05 jmp SHORT $LN6@Maklocstr +$LN10@Maklocstr: + +; 612 : } +; 613 : } + + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr +$LN6@Maklocstr: + +; 614 : +; 615 : *_Ptrnext = L'\0'; + + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 + 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] + 0020f 66 89 01 mov WORD PTR [rcx], ax + +; 616 : +; 617 : return _Ptrdest; + + 00212 48 8b 85 e8 00 + 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] +$LN11@Maklocstr: + +; 618 : } + + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 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 + 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 + 00 00 lea rsp, QWORD PTR [rbp+520] + 00245 5f pop rdi + 00246 5d pop rbp + 00247 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 +_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 + +; 1205 : inline void _Container_base12::_Orphan_all() noexcept { + +$LN7: + 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 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 + 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 + +; 1206 : #if _ITERATOR_DEBUG_LEVEL == 2 +; 1207 : if (_Myproxy) { // proxy allocated, drain it + + 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 + +; 1208 : _Lockit _Lock(_LOCK_DEBUG); + + 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 + +; 1209 : +; 1210 : for (auto _Pnext = &_Myproxy->_Myfirstiter; *_Pnext; *_Pnext = (*_Pnext)->_Mynextiter) { + + 00063 48 8b 85 20 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 +$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 +$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 + +; 1211 : (*_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 + 00 00 mov QWORD PTR [rax], 0 + +; 1212 : } + + 000a1 eb d4 jmp SHORT $LN2@Orphan_all +$LN3@Orphan_all: + +; 1213 : +; 1214 : _Myproxy->_Myfirstiter = nullptr; + + 000a3 48 8b 85 20 01 + 00 00 mov rax, QWORD PTR this$[rbp] + 000aa 48 8b 00 mov rax, QWORD PTR [rax] + 000ad 48 c7 40 08 00 + 00 00 00 mov QWORD PTR [rax+8], 0 + +; 1215 : } + + 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: + +; 1216 : #endif // _ITERATOR_DEBUG_LEVEL == 2 +; 1217 : } + + 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 +?_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 +; COMDAT ?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z +_TEXT SEGMENT +_Ptr_user$ = 8 +_Ptr_container$ = 40 +_Min_back_shift$ = 72 +_Back_shift$ = 104 +_Ptr$ = 352 +_Bytes$ = 360 +?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z PROC ; std::_Adjust_manually_vector_aligned, COMDAT + +; 132 : inline void _Adjust_manually_vector_aligned(void*& _Ptr, size_t& _Bytes) { + +$LN21: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec 78 01 + 00 00 sub rsp, 376 ; 00000178H + 00013 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48] + 00018 48 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 + 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 + 00 00 mov rcx, QWORD PTR _Bytes$[rbp] + 00050 48 89 01 mov QWORD PTR [rcx], rax + +; 135 : +; 136 : const uintptr_t* const _Ptr_user = reinterpret_cast(_Ptr); + + 00053 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 + +; 137 : 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 +$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 + 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 +$LN14@Adjust_man: +$LN7@Adjust_man: + 00095 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 + 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 + 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 + 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 +$LN19@Adjust_man: + 000d6 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 + 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 + 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 + 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 + 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 +$LN15@Adjust_man: + 0010c 33 c0 xor eax, eax + 0010e 85 c0 test eax, eax + 00110 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*); + + 00116 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; + + 0011e 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 +$LN10@Adjust_man: + +; 151 : _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 +$LN16@Adjust_man: +$LN13@Adjust_man: + 00143 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 + 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 + 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 + 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 +$LN20@Adjust_man: + 00184 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 + 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 + 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 + 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 + 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 +$LN17@Adjust_man: + 001ba 33 c0 xor eax, eax + 001bc 85 c0 test eax, eax + 001be 0f 85 6f ff ff + ff jne $LN10@Adjust_man + +; 152 : _Ptr = reinterpret_cast(_Ptr_container); + + 001c4 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 + +; 153 : } + + 001d2 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 +?_Adjust_manually_vector_aligned@std@@YAXAEAPEAXAEA_K@Z ENDP ; std::_Adjust_manually_vector_aligned +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\wchar.h +; COMDAT wmemcpy +_TEXT SEGMENT +_S1$ = 224 +_S2$ = 232 +_N$ = 240 +wmemcpy PROC ; COMDAT + +; 234 : { + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 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:__93DC0B45_wchar@h + 0003b 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 + 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 + 00 00 mov rdx, QWORD PTR _S2$[rbp] + 00054 48 8b 8d e0 00 + 00 00 mov rcx, QWORD PTR _S1$[rbp] + 0005b e8 00 00 00 00 call memcpy + +; 237 : } + + 00060 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 +wmemcpy ENDP +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Obfuscator.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +__formal$ = 240 +?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 + 00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 0000a 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000f 55 push rbp + 00010 57 push rdi + 00011 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00018 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 0001d 48 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:__135BC3AC_Obfuscator@cpp + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00040 90 npad 1 + 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 +?__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\Obfuscator.cpp +; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 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:__135BC3AC_Obfuscator@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 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 +?__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\Obfuscator.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z +_TEXT SEGMENT +__formal$ = 224 +__formal$ = 232 +?__empty_global_delete@@YAXPEAX_K@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx + 00005 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 0000a 55 push rbp + 0000b 57 push rdi + 0000c 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 00013 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00018 48 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:__135BC3AC_Obfuscator@cpp + 00036 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b 90 npad 1 + 0003c 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 +?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete +_TEXT ENDS +; Function compile flags: /Odtp /RTCsu /ZI +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Obfuscator.cpp +; COMDAT ?__empty_global_delete@@YAXPEAX@Z +_TEXT SEGMENT +__formal$ = 224 +?__empty_global_delete@@YAXPEAX@Z PROC ; __empty_global_delete, COMDAT + +$LN3: + 00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx + 00005 55 push rbp + 00006 57 push rdi + 00007 48 81 ec e8 00 + 00 00 sub rsp, 232 ; 000000e8H + 0000e 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32] + 00013 48 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:__135BC3AC_Obfuscator@cpp + 00031 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00036 90 npad 1 + 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 +?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete +_TEXT ENDS END diff --git a/CodeVirtualizer/x64/Debug/OpaqueBranching.cod b/CodeVirtualizer/x64/Debug/OpaqueBranching.cod index 5e53397..4868079 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.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 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 -__02E23235_vcruntime_new@h DB 01H +__8906660C_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,55 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__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 __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__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 +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_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 msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -102,9 +101,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@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@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 @@ -145,91 +144,91 @@ EXTRN __security_cookie:QWORD ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3 - DD imagerel $LN3+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 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+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_relbr DD imagerel xed_relbr - DD imagerel xed_relbr+184 + DD imagerel xed_relbr+182 DD imagerel $unwind$xed_relbr pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$xed_inst1 DD imagerel xed_inst1 - DD imagerel xed_inst1+184 + DD imagerel xed_inst1+207 DD imagerel $unwind$xed_inst1 pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD imagerel $LN4 - DD imagerel $LN4+82 + DD imagerel $LN4+105 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+268 + DD imagerel $LN21+284 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+617 + DD imagerel $LN11+615 DD imagerel $unwind$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z pdata ENDS ; COMDAT pdata @@ -241,7 +240,7 @@ pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD imagerel $LN11 - DD imagerel $LN11+591 + DD imagerel $LN11+589 DD imagerel $unwind$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z pdata ENDS ; COMDAT pdata @@ -253,13 +252,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+144 + DD imagerel $LN5+167 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+477 + DD imagerel $LN13+500 DD imagerel $unwind$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z pdata ENDS ; COMDAT pdata @@ -276,8 +275,8 @@ $pdata$?dtor$1@?0??ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z@4H pdata ENDS ; COMDAT pdata pdata SEGMENT -$pdata$?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN13 - DD imagerel $LN13+377 +$pdata$?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD imagerel $LN15 + DD imagerel $LN15+497 DD imagerel $unwind$?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT rtc$TMZ @@ -298,39 +297,29 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@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' +??_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' CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD 025051d01H +$unwind$?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z DD 025053401H 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 @@ -348,7 +337,7 @@ xdata SEGMENT $ip2state$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z DB 0aH DB 00H DB 00H - DB 'u', 03H + DB 0d1H, 03H DB 02H DB 08aH DB 00H @@ -373,7 +362,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 025052211H +$unwind$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z DD 025053911H DD 011d2322H DD 070160039H DD 05015H @@ -382,21 +371,11 @@ $unwind$?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z DD 025052211 xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z DD 025052201H +$unwind$?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z DD 025053901H 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 @@ -408,7 +387,7 @@ xdata SEGMENT $ip2state$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DB 06H DB 00H DB 00H - DB 0adH, 04H + DB 0a5H, 04H DB 02H DB 0a6H DB 00H @@ -427,7 +406,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 035064019H +$unwind$?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD 035063e19H DD 01123317H DD 0700b00e0H DD 05009600aH @@ -535,16 +514,6 @@ 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 @@ -556,7 +525,7 @@ xdata SEGMENT $ip2state$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DB 06H DB 00H DB 00H - DB 015H, 05H + DB 0dH, 05H DB 02H DB 0a6H DB 00H @@ -575,7 +544,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 035064019H +$unwind$?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z DD 035063e19H DD 01123317H DD 0700b00e4H DD 05009600aH @@ -685,33 +654,28 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ DD 025050f01H +$unwind$?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ DD 025051e01H DD 010a230fH DD 07003001fH DD 05002H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD 025051701H +$unwind$??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z DD 025052e01H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$xed_inst1 DD 025062301H +$unwind$xed_inst1 DD 025063a01H 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 025064719H +$unwind$xed_relbr DD 025064519H DD 0118231dH DD 070110026H DD 0500f6010H @@ -733,40 +697,35 @@ 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 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -811,38 +770,90 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$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 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 -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H +$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 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 025051801H +$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025052f19H 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 -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$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 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 @@ -852,7 +863,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfInsertOpaqueBranchBlock@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT T$1 = 8 @@ -860,7 +871,7 @@ EndBlock$ = 40 T$2 = 72 RealNext$3 = 104 $T4 = 328 -tv128 = 344 +tv140 = 344 Start$ = 384 End$ = 392 OpaqueBranchBlock$ = 400 @@ -868,7 +879,7 @@ OpaqueBranchBlock$ = 400 ; 117 : { -$LN13: +$LN15: 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 @@ -877,173 +888,223 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 118 : OpaqueBranchBlock->Start->Prev = Start->Prev; - 00029 48 8b 85 90 01 + 00040 48 8b 85 90 01 00 00 mov rax, QWORD PTR OpaqueBranchBlock$[rbp] - 00030 48 8b 00 mov rax, QWORD PTR [rax] - 00033 48 8b 8d 80 01 + 00047 48 8b 00 mov rax, QWORD PTR [rax] + 0004a 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Start$[rbp] - 0003a 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 0003e 48 89 48 08 mov QWORD PTR [rax+8], rcx + 00051 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 00055 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 119 : OpaqueBranchBlock->End->Next = End->Next; - 00042 48 8b 85 90 01 + 00059 48 8b 85 90 01 00 00 mov rax, QWORD PTR OpaqueBranchBlock$[rbp] - 00049 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 0004d 48 8b 8d 88 01 + 00060 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 00064 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR End$[rbp] - 00054 48 8b 09 mov rcx, QWORD PTR [rcx] - 00057 48 89 08 mov QWORD PTR [rax], rcx + 0006b 48 8b 09 mov rcx, QWORD PTR [rcx] + 0006e 48 89 08 mov QWORD PTR [rax], rcx ; 120 : ; 121 : if (Start->Prev) - 0005a 48 8b 85 80 01 + 00071 48 8b 85 80 01 00 00 mov rax, QWORD PTR Start$[rbp] - 00061 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 - 00066 74 18 je SHORT $LN8@ObfInsertO + 00078 48 83 78 08 00 cmp QWORD PTR [rax+8], 0 + 0007d 74 18 je SHORT $LN8@ObfInsertO ; 122 : Start->Prev->Next = OpaqueBranchBlock->Start; - 00068 48 8b 85 80 01 + 0007f 48 8b 85 80 01 00 00 mov rax, QWORD PTR Start$[rbp] - 0006f 48 8b 40 08 mov rax, QWORD PTR [rax+8] - 00073 48 8b 8d 90 01 + 00086 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0008a 48 8b 8d 90 01 00 00 mov rcx, QWORD PTR OpaqueBranchBlock$[rbp] - 0007a 48 8b 09 mov rcx, QWORD PTR [rcx] - 0007d 48 89 08 mov QWORD PTR [rax], rcx + 00091 48 8b 09 mov rcx, QWORD PTR [rcx] + 00094 48 89 08 mov QWORD PTR [rax], rcx $LN8@ObfInsertO: ; 123 : if (End->Next) - 00080 48 8b 85 88 01 + 00097 48 8b 85 88 01 00 00 mov rax, QWORD PTR End$[rbp] - 00087 48 83 38 00 cmp QWORD PTR [rax], 0 - 0008b 74 19 je SHORT $LN9@ObfInsertO + 0009e 48 83 38 00 cmp QWORD PTR [rax], 0 + 000a2 74 19 je SHORT $LN9@ObfInsertO ; 124 : End->Next->Prev = OpaqueBranchBlock->End; - 0008d 48 8b 85 88 01 + 000a4 48 8b 85 88 01 00 00 mov rax, QWORD PTR End$[rbp] - 00094 48 8b 00 mov rax, QWORD PTR [rax] - 00097 48 8b 8d 90 01 + 000ab 48 8b 00 mov rax, QWORD PTR [rax] + 000ae 48 8b 8d 90 01 00 00 mov rcx, QWORD PTR OpaqueBranchBlock$[rbp] - 0009e 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 000a2 48 89 48 08 mov QWORD PTR [rax+8], rcx + 000b5 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 000b9 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) +; 126 : if (Start->Block->Start == Start) - 000a6 48 8b 85 90 01 + 000bd 48 8b 85 80 01 + 00 00 mov rax, QWORD PTR Start$[rbp] + 000c4 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 000c8 48 8b 8d 80 01 + 00 00 mov rcx, QWORD PTR Start$[rbp] + 000cf 48 39 08 cmp QWORD PTR [rax], rcx + 000d2 75 18 jne SHORT $LN10@ObfInsertO + +; 127 : Start->Block->Start = OpaqueBranchBlock->Start; + + 000d4 48 8b 85 80 01 + 00 00 mov rax, QWORD PTR Start$[rbp] + 000db 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 000df 48 8b 8d 90 01 + 00 00 mov rcx, QWORD PTR OpaqueBranchBlock$[rbp] + 000e6 48 8b 09 mov rcx, QWORD PTR [rcx] + 000e9 48 89 08 mov QWORD PTR [rax], rcx +$LN10@ObfInsertO: + +; 128 : +; 129 : if (Start->Block->End == End) + + 000ec 48 8b 85 80 01 + 00 00 mov rax, QWORD PTR Start$[rbp] + 000f3 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 000f7 48 8b 8d 88 01 + 00 00 mov rcx, QWORD PTR End$[rbp] + 000fe 48 39 48 08 cmp QWORD PTR [rax+8], rcx + 00102 75 1a jne SHORT $LN11@ObfInsertO + +; 130 : Start->Block->End = OpaqueBranchBlock->End; + + 00104 48 8b 85 80 01 + 00 00 mov rax, QWORD PTR Start$[rbp] + 0010b 48 8b 40 10 mov rax, QWORD PTR [rax+16] + 0010f 48 8b 8d 90 01 + 00 00 mov rcx, QWORD PTR OpaqueBranchBlock$[rbp] + 00116 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 0011a 48 89 48 08 mov QWORD PTR [rax+8], rcx +$LN11@ObfInsertO: + +; 131 : +; 132 : //Update group for the current isntructions +; 133 : for (PNATIVE_CODE_LINK T = OpaqueBranchBlock->Start; T && T != OpaqueBranchBlock->End->Next; T = T->Next) + + 0011e 48 8b 85 90 01 00 00 mov rax, QWORD PTR OpaqueBranchBlock$[rbp] - 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 + 00125 48 8b 00 mov rax, QWORD PTR [rax] + 00128 48 89 45 08 mov QWORD PTR T$1[rbp], rax + 0012c eb 0b jmp SHORT $LN4@ObfInsertO $LN2@ObfInsertO: - 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 + 0012e 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00132 48 8b 00 mov rax, QWORD PTR [rax] + 00135 48 89 45 08 mov QWORD PTR T$1[rbp], rax $LN4@ObfInsertO: - 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 + 00139 48 83 7d 08 00 cmp QWORD PTR T$1[rbp], 0 + 0013e 74 29 je SHORT $LN3@ObfInsertO + 00140 48 8b 85 90 01 00 00 mov rax, QWORD PTR OpaqueBranchBlock$[rbp] - 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 + 00147 48 8b 40 08 mov rax, QWORD PTR [rax+8] + 0014b 48 8b 00 mov rax, QWORD PTR [rax] + 0014e 48 39 45 08 cmp QWORD PTR T$1[rbp], rax + 00152 74 15 je SHORT $LN3@ObfInsertO -; 128 : T->Block = Start->Block; +; 134 : T->Block = Start->Block; - 000dc 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] - 000e0 48 8b 8d 80 01 + 00154 48 8b 45 08 mov rax, QWORD PTR T$1[rbp] + 00158 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Start$[rbp] - 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 + 0015f 48 8b 49 10 mov rcx, QWORD PTR [rcx+16] + 00163 48 89 48 10 mov QWORD PTR [rax+16], rcx + 00167 eb c5 jmp SHORT $LN2@ObfInsertO $LN3@ObfInsertO: -; 129 : -; 130 : PNATIVE_CODE_LINK EndBlock = End->Next; +; 135 : +; 136 : PNATIVE_CODE_LINK EndBlock = End->Next; - 000f1 48 8b 85 88 01 + 00169 48 8b 85 88 01 00 00 mov rax, QWORD PTR End$[rbp] - 000f8 48 8b 00 mov rax, QWORD PTR [rax] - 000fb 48 89 45 28 mov QWORD PTR EndBlock$[rbp], rax + 00170 48 8b 00 mov rax, QWORD PTR [rax] + 00173 48 89 45 28 mov QWORD PTR EndBlock$[rbp], rax -; 131 : for (PNATIVE_CODE_LINK T = Start; T && T != EndBlock;) +; 137 : for (PNATIVE_CODE_LINK T = Start; T && T != EndBlock;) - 000ff 48 8b 85 80 01 + 00177 48 8b 85 80 01 00 00 mov rax, QWORD PTR Start$[rbp] - 00106 48 89 45 48 mov QWORD PTR T$2[rbp], rax + 0017e 48 89 45 48 mov QWORD PTR T$2[rbp], rax $LN5@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 + 00182 48 83 7d 48 00 cmp QWORD PTR T$2[rbp], 0 + 00187 74 59 je SHORT $LN6@ObfInsertO + 00189 48 8b 45 28 mov rax, QWORD PTR EndBlock$[rbp] + 0018d 48 39 45 48 cmp QWORD PTR T$2[rbp], rax + 00191 74 4f je SHORT $LN6@ObfInsertO -; 132 : { -; 133 : PNATIVE_CODE_LINK RealNext = T->Next; +; 138 : { +; 139 : PNATIVE_CODE_LINK RealNext = T->Next; - 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 + 00193 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] + 00197 48 8b 00 mov rax, QWORD PTR [rax] + 0019a 48 89 45 68 mov QWORD PTR RealNext$3[rbp], rax -; 134 : delete T; +; 140 : delete T; - 00126 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] - 0012a 48 89 85 48 01 + 0019e 48 8b 45 48 mov rax, QWORD PTR T$2[rbp] + 001a2 48 89 85 48 01 00 00 mov QWORD PTR $T4[rbp], rax - 00131 48 83 bd 48 01 + 001a9 48 83 bd 48 01 00 00 00 cmp QWORD PTR $T4[rbp], 0 - 00139 74 1a je SHORT $LN11@ObfInsertO - 0013b ba 01 00 00 00 mov edx, 1 - 00140 48 8b 8d 48 01 + 001b1 74 1a je SHORT $LN13@ObfInsertO + 001b3 ba 01 00 00 00 mov edx, 1 + 001b8 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR $T4[rbp] - 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 - 00153 eb 0b jmp SHORT $LN12@ObfInsertO -$LN11@ObfInsertO: - 00155 48 c7 85 58 01 + 001bf e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 001c4 48 89 85 58 01 + 00 00 mov QWORD PTR tv140[rbp], rax + 001cb eb 0b jmp SHORT $LN14@ObfInsertO +$LN13@ObfInsertO: + 001cd 48 c7 85 58 01 00 00 00 00 00 - 00 mov QWORD PTR tv128[rbp], 0 -$LN12@ObfInsertO: + 00 mov QWORD PTR tv140[rbp], 0 +$LN14@ObfInsertO: -; 135 : T = RealNext; +; 141 : T = RealNext; - 00160 48 8b 45 68 mov rax, QWORD PTR RealNext$3[rbp] - 00164 48 89 45 48 mov QWORD PTR T$2[rbp], rax + 001d8 48 8b 45 68 mov rax, QWORD PTR RealNext$3[rbp] + 001dc 48 89 45 48 mov QWORD PTR T$2[rbp], rax -; 136 : } +; 142 : } - 00168 eb a0 jmp SHORT $LN5@ObfInsertO + 001e0 eb a0 jmp SHORT $LN5@ObfInsertO $LN6@ObfInsertO: -; 137 : return TRUE; +; 143 : return TRUE; - 0016a b8 01 00 00 00 mov eax, 1 + 001e2 b8 01 00 00 00 mov eax, 1 -; 138 : } +; 144 : } - 0016f 48 8d a5 68 01 + 001e7 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 + 001ee 5f pop rdi + 001ef 5d pop rbp + 001f0 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:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z _TEXT SEGMENT Jcc$ = 8 @@ -1074,187 +1135,193 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 95 : PNATIVE_CODE_LINK Jcc = ObfGenRandomJcc(JccLabel); - 0002e ba 20 00 00 00 mov edx, 32 ; 00000020H - 00033 8b 8d d0 01 00 + 00045 ba 20 00 00 00 mov edx, 32 ; 00000020H + 0004a 8b 8d d0 01 00 00 mov ecx, DWORD PTR JccLabel$[rbp] - 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 + 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 ; 96 : if (!Jcc) - 00042 48 83 7d 08 00 cmp QWORD PTR Jcc$[rbp], 0 - 00047 75 07 jne SHORT $LN2@ObfCombine + 00059 48 83 7d 08 00 cmp QWORD PTR Jcc$[rbp], 0 + 0005e 75 07 jne SHORT $LN2@ObfCombine ; 97 : return FALSE; - 00049 33 c0 xor eax, eax - 0004b e9 83 01 00 00 jmp $LN1@ObfCombine + 00060 33 c0 xor eax, eax + 00062 e9 83 01 00 00 jmp $LN1@ObfCombine $LN2@ObfCombine: ; 98 : PNATIVE_CODE_LINK Jmp = ObfGenJmpToLabel(JmpLabel); - 00050 ba 20 00 00 00 mov edx, 32 ; 00000020H - 00055 8b 8d d8 01 00 + 00067 ba 20 00 00 00 mov edx, 32 ; 00000020H + 0006c 8b 8d d8 01 00 00 mov ecx, DWORD PTR JmpLabel$[rbp] - 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 + 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 ; 99 : if (!Jmp) - 00064 48 83 7d 28 00 cmp QWORD PTR Jmp$[rbp], 0 - 00069 75 41 jne SHORT $LN3@ObfCombine + 0007b 48 83 7d 28 00 cmp QWORD PTR Jmp$[rbp], 0 + 00080 75 41 jne SHORT $LN3@ObfCombine ; 100 : { ; 101 : delete Jcc; - 0006b 48 8b 45 08 mov rax, QWORD PTR Jcc$[rbp] - 0006f 48 89 85 08 01 + 00082 48 8b 45 08 mov rax, QWORD PTR Jcc$[rbp] + 00086 48 89 85 08 01 00 00 mov QWORD PTR $T1[rbp], rax - 00076 48 83 bd 08 01 + 0008d 48 83 bd 08 01 00 00 00 cmp QWORD PTR $T1[rbp], 0 - 0007e 74 1a je SHORT $LN5@ObfCombine - 00080 ba 01 00 00 00 mov edx, 1 - 00085 48 8b 8d 08 01 + 00095 74 1a je SHORT $LN5@ObfCombine + 00097 ba 01 00 00 00 mov edx, 1 + 0009c 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR $T1[rbp] - 0008c e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 00091 48 89 85 98 01 + 000a3 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 000a8 48 89 85 98 01 00 00 mov QWORD PTR tv76[rbp], rax - 00098 eb 0b jmp SHORT $LN6@ObfCombine + 000af eb 0b jmp SHORT $LN6@ObfCombine $LN5@ObfCombine: - 0009a 48 c7 85 98 01 + 000b1 48 c7 85 98 01 00 00 00 00 00 00 mov QWORD PTR tv76[rbp], 0 $LN6@ObfCombine: ; 102 : return FALSE; - 000a5 33 c0 xor eax, eax - 000a7 e9 27 01 00 00 jmp $LN1@ObfCombine + 000bc 33 c0 xor eax, eax + 000be e9 27 01 00 00 jmp $LN1@ObfCombine $LN3@ObfCombine: ; 103 : } ; 104 : ; 105 : NcPrependToBlock(NotTaken, Jcc); - 000ac 48 8b 55 08 mov rdx, QWORD PTR Jcc$[rbp] - 000b0 48 8b 8d c0 01 + 000c3 48 8b 55 08 mov rdx, QWORD PTR Jcc$[rbp] + 000c7 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR NotTaken$[rbp] - 000b7 e8 00 00 00 00 call ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcPrependToBlock + 000ce e8 00 00 00 00 call ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcPrependToBlock ; 106 : NcAppendToBlock(NotTaken, Jmp); - 000bc 48 8b 55 28 mov rdx, QWORD PTR Jmp$[rbp] - 000c0 48 8b 8d c0 01 + 000d3 48 8b 55 28 mov rdx, QWORD PTR Jmp$[rbp] + 000d7 48 8b 8d c0 01 00 00 mov rcx, QWORD PTR NotTaken$[rbp] - 000c7 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 000de 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)); - 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 + 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 00 00 mov QWORD PTR $T3[rbp], rax - 000dd 48 83 bd 48 01 + 000f4 48 83 bd 48 01 00 00 00 cmp QWORD PTR $T3[rbp], 0 - 000e5 74 22 je SHORT $LN7@ObfCombine - 000e7 4c 8b 85 c8 01 + 000fc 74 22 je SHORT $LN7@ObfCombine + 000fe 4c 8b 85 c8 01 00 00 mov r8, QWORD PTR Taken$[rbp] - 000ee 8b 95 d0 01 00 + 00105 8b 95 d0 01 00 00 mov edx, DWORD PTR JccLabel$[rbp] - 000f4 48 8b 8d 48 01 + 0010b 48 8b 8d 48 01 00 00 mov rcx, QWORD PTR $T3[rbp] - 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 + 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 00 00 mov QWORD PTR tv94[rbp], rax - 00107 eb 0b jmp SHORT $LN8@ObfCombine + 0011e eb 0b jmp SHORT $LN8@ObfCombine $LN7@ObfCombine: - 00109 48 c7 85 98 01 + 00120 48 c7 85 98 01 00 00 00 00 00 00 mov QWORD PTR tv94[rbp], 0 $LN8@ObfCombine: - 00114 48 8b 85 98 01 + 0012b 48 8b 85 98 01 00 00 mov rax, QWORD PTR tv94[rbp] - 0011b 48 89 85 28 01 + 00132 48 89 85 28 01 00 00 mov QWORD PTR $T2[rbp], rax - 00122 48 8b 95 28 01 + 00139 48 8b 95 28 01 00 00 mov rdx, QWORD PTR $T2[rbp] - 00129 48 8b 8d c8 01 + 00140 48 8b 8d c8 01 00 00 mov rcx, QWORD PTR Taken$[rbp] - 00130 e8 00 00 00 00 call ?NcPrependToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcPrependToBlock + 00147 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)); - 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 + 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 00 00 mov QWORD PTR $T5[rbp], rax - 00146 48 83 bd 88 01 + 0015d 48 83 bd 88 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0014e 74 22 je SHORT $LN9@ObfCombine - 00150 4c 8b 85 c8 01 + 00165 74 22 je SHORT $LN9@ObfCombine + 00167 4c 8b 85 c8 01 00 00 mov r8, QWORD PTR Taken$[rbp] - 00157 8b 95 d8 01 00 + 0016e 8b 95 d8 01 00 00 mov edx, DWORD PTR JmpLabel$[rbp] - 0015d 48 8b 8d 88 01 + 00174 48 8b 8d 88 01 00 00 mov rcx, QWORD PTR $T5[rbp] - 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 + 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 00 00 mov QWORD PTR tv141[rbp], rax - 00170 eb 0b jmp SHORT $LN10@ObfCombine + 00187 eb 0b jmp SHORT $LN10@ObfCombine $LN9@ObfCombine: - 00172 48 c7 85 98 01 + 00189 48 c7 85 98 01 00 00 00 00 00 00 mov QWORD PTR tv141[rbp], 0 $LN10@ObfCombine: - 0017d 48 8b 85 98 01 + 00194 48 8b 85 98 01 00 00 mov rax, QWORD PTR tv141[rbp] - 00184 48 89 85 68 01 + 0019b 48 89 85 68 01 00 00 mov QWORD PTR $T4[rbp], rax - 0018b 48 8b 95 68 01 + 001a2 48 8b 95 68 01 00 00 mov rdx, QWORD PTR $T4[rbp] - 00192 48 8b 8d c8 01 + 001a9 48 8b 8d c8 01 00 00 mov rcx, QWORD PTR Taken$[rbp] - 00199 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 001b0 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 110 : ; 111 : NcInsertBlockAfter(NotTaken->End, Taken, FALSE); - 0019e 45 33 c0 xor r8d, r8d - 001a1 48 8b 95 c8 01 + 001b5 45 33 c0 xor r8d, r8d + 001b8 48 8b 95 c8 01 00 00 mov rdx, QWORD PTR Taken$[rbp] - 001a8 48 8b 85 c0 01 + 001bf 48 8b 85 c0 01 00 00 mov rax, QWORD PTR NotTaken$[rbp] - 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 + 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 ; 112 : NotTaken->End = Taken->End; - 001b8 48 8b 85 c0 01 + 001cf 48 8b 85 c0 01 00 00 mov rax, QWORD PTR NotTaken$[rbp] - 001bf 48 8b 8d c8 01 + 001d6 48 8b 8d c8 01 00 00 mov rcx, QWORD PTR Taken$[rbp] - 001c6 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] - 001ca 48 89 48 08 mov QWORD PTR [rax+8], rcx + 001dd 48 8b 49 08 mov rcx, QWORD PTR [rcx+8] + 001e1 48 89 48 08 mov QWORD PTR [rax+8], rcx ; 113 : return TRUE; - 001ce b8 01 00 00 00 mov eax, 1 + 001e5 b8 01 00 00 00 mov eax, 1 $LN1@ObfCombine: ; 114 : } - 001d3 48 8d a5 a8 01 + 001ea 48 8d a5 a8 01 00 00 lea rsp, QWORD PTR [rbp+424] - 001da 5f pop rdi - 001db 5d pop rbp - 001dc c3 ret 0 + 001f1 5f pop rdi + 001f2 5d pop rbp + 001f3 c3 ret 0 ?ObfCombineOpaqueBranches@@YAHPEAU_NATIVE_CODE_BLOCK@@0KK@Z ENDP ; ObfCombineOpaqueBranches _TEXT ENDS ; COMDAT text$x @@ -1392,7 +1459,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:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfCreateOpaqueBranches@@YAHPEAU_NATIVE_CODE_LINK@@0PEAU_NATIVE_CODE_BLOCK@@1@Z _TEXT SEGMENT tv74 = 192 @@ -1414,51 +1481,57 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp - 00029 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 90 : return (NcDeepCopyPartialBlock(Start, End, Taken) && !NcDeepCopyPartialBlock(Start, End, NotTaken)); - 0002e 4c 8b 85 08 01 + 00045 4c 8b 85 08 01 00 00 mov r8, QWORD PTR Taken$[rbp] - 00035 48 8b 95 f8 00 + 0004c 48 8b 95 f8 00 00 00 mov rdx, QWORD PTR End$[rbp] - 0003c 48 8b 8d f0 00 + 00053 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR Start$[rbp] - 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 + 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 00 00 mov r8, QWORD PTR NotTaken$[rbp] - 00053 48 8b 95 f8 00 + 0006a 48 8b 95 f8 00 00 00 mov rdx, QWORD PTR End$[rbp] - 0005a 48 8b 8d f0 00 + 00071 48 8b 8d f0 00 00 00 mov rcx, QWORD PTR Start$[rbp] - 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 + 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 00 01 00 00 00 mov DWORD PTR tv74[rbp], 1 - 00074 eb 0a jmp SHORT $LN4@ObfCreateO + 0008b eb 0a jmp SHORT $LN4@ObfCreateO $LN3@ObfCreateO: - 00076 c7 85 c0 00 00 + 0008d c7 85 c0 00 00 00 00 00 00 00 mov DWORD PTR tv74[rbp], 0 $LN4@ObfCreateO: - 00080 8b 85 c0 00 00 + 00097 8b 85 c0 00 00 00 mov eax, DWORD PTR tv74[rbp] ; 91 : } - 00086 48 8d a5 d8 00 + 0009d 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 0008d 5f pop rdi - 0008e 5d pop rbp - 0008f c3 ret 0 + 000a4 5f pop rdi + 000a5 5d pop rbp + 000a6 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:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z _TEXT SEGMENT MachineState$ = 8 @@ -1491,30 +1564,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 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 + 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 00 00 mov ecx, DWORD PTR [rsp+1832] - 0002f 48 8b 05 00 00 + 0002d 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00036 48 33 c5 xor rax, rbp - 00039 48 89 85 c0 06 + 00034 48 33 c5 xor rax, rbp + 00037 48 89 85 c0 06 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00040 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp - 00047 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp + 00045 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 59 : XED_STATE MachineState; ; 60 : MachineState.mmode = XED_MACHINE_MODE_LONG_64; - 0004c c7 45 08 01 00 + 0004a c7 45 08 01 00 00 00 mov DWORD PTR MachineState$[rbp], 1 ; 61 : MachineState.stack_addr_width = XED_ADDRESS_WIDTH_64b; - 00053 c7 45 0c 08 00 + 00051 c7 45 0c 08 00 00 00 mov DWORD PTR MachineState$[rbp+4], 8 ; 62 : XED_ENCODER_INSTRUCTION EncoderInstruction; @@ -1524,204 +1597,204 @@ $LN11: ; 66 : ; 67 : XedInst1(&EncoderInstruction, MachineState, XED_ICLASS_JMP, DisplacementWidth, XedRelBr(0, DisplacementWidth)); - 0005a 44 8b 85 f8 06 + 00058 44 8b 85 f8 06 00 00 mov r8d, DWORD PTR DisplacementWidth$[rbp] - 00061 33 d2 xor edx, edx - 00063 48 8d 8d c8 05 + 0005f 33 d2 xor edx, edx + 00061 48 8d 8d c8 05 00 00 lea rcx, QWORD PTR $T9[rbp] - 0006a e8 00 00 00 00 call xed_relbr - 0006f 48 8d 8d 78 05 + 00068 e8 00 00 00 00 call xed_relbr + 0006d 48 8d 8d 78 05 00 00 lea rcx, QWORD PTR $T8[rbp] - 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 + 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 00 00 lea rax, QWORD PTR $T13[rbp] - 0008a 48 8d 8d 78 05 + 00088 48 8d 8d 78 05 00 00 lea rcx, QWORD PTR $T8[rbp] - 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 + 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 00 00 lea rax, QWORD PTR $T13[rbp] - 000a5 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000aa 44 8b 8d f8 06 + 000a3 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000a8 44 8b 8d f8 06 00 00 mov r9d, DWORD PTR DisplacementWidth$[rbp] - 000b1 41 b8 3c 01 00 + 000af 41 b8 3c 01 00 00 mov r8d, 316 ; 0000013cH - 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 + 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 ; 68 : ; 69 : XedEncoderRequestZeroSetMode(&EncoderRequest, &MachineState); - 000c4 48 8d 55 08 lea rdx, QWORD PTR MachineState$[rbp] - 000c8 48 8d 8d f0 01 + 000c2 48 8d 55 08 lea rdx, QWORD PTR MachineState$[rbp] + 000c6 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 000cf e8 00 00 00 00 call xed_encoder_request_zero_set_mode + 000cd e8 00 00 00 00 call xed_encoder_request_zero_set_mode ; 70 : if (!XedConvertToEncoderRequest(&EncoderRequest, &EncoderInstruction)) - 000d4 48 8d 55 30 lea rdx, QWORD PTR EncoderInstruction$[rbp] - 000d8 48 8d 8d f0 01 + 000d2 48 8d 55 30 lea rdx, QWORD PTR EncoderInstruction$[rbp] + 000d6 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 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 + 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 ; 71 : return NULL; - 000e8 33 c0 xor eax, eax - 000ea e9 30 01 00 00 jmp $LN1@ObfGenJmpT + 000e6 33 c0 xor eax, eax + 000e8 e9 30 01 00 00 jmp $LN1@ObfGenJmpT $LN2@ObfGenJmpT: ; 72 : ; 73 : if (XED_ERROR_NONE != XedEncode(&EncoderRequest, EncodeBuffer, 15, &ReturnedSize)) - 000ef 4c 8d 8d f4 02 + 000ed 4c 8d 8d f4 02 00 00 lea r9, QWORD PTR ReturnedSize$[rbp] - 000f6 41 b8 0f 00 00 + 000f4 41 b8 0f 00 00 00 mov r8d, 15 - 000fc 48 8d 95 c8 02 + 000fa 48 8d 95 c8 02 00 00 lea rdx, QWORD PTR EncodeBuffer$[rbp] - 00103 48 8d 8d f0 01 + 00101 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 0010a e8 00 00 00 00 call xed_encode - 0010f 85 c0 test eax, eax - 00111 74 07 je SHORT $LN3@ObfGenJmpT + 00108 e8 00 00 00 00 call xed_encode + 0010d 85 c0 test eax, eax + 0010f 74 07 je SHORT $LN3@ObfGenJmpT ; 74 : return NULL; - 00113 33 c0 xor eax, eax - 00115 e9 05 01 00 00 jmp $LN1@ObfGenJmpT + 00111 33 c0 xor eax, eax + 00113 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); - 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 + 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 00 00 mov QWORD PTR $T11[rbp], rax - 0012b 48 83 bd 38 06 + 00129 48 83 bd 38 06 00 00 00 cmp QWORD PTR $T11[rbp], 0 - 00133 74 30 je SHORT $LN6@ObfGenJmpT - 00135 c7 44 24 20 00 + 00131 74 30 je SHORT $LN6@ObfGenJmpT + 00133 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0013d 44 8b 8d f4 02 + 0013b 44 8b 8d f4 02 00 00 mov r9d, DWORD PTR ReturnedSize$[rbp] - 00144 4c 8d 85 c8 02 + 00142 4c 8d 85 c8 02 00 00 lea r8, QWORD PTR EncodeBuffer$[rbp] - 0014b ba 04 00 00 00 mov edx, 4 - 00150 48 8b 8d 38 06 + 00149 ba 04 00 00 00 mov edx, 4 + 0014e 48 8b 8d 38 06 00 00 mov rcx, QWORD PTR $T11[rbp] - 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 + 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 00 00 mov QWORD PTR tv133[rbp], rax - 00163 eb 0b jmp SHORT $LN7@ObfGenJmpT + 00161 eb 0b jmp SHORT $LN7@ObfGenJmpT $LN6@ObfGenJmpT: - 00165 48 c7 85 b8 06 + 00163 48 c7 85 b8 06 00 00 00 00 00 00 mov QWORD PTR tv133[rbp], 0 $LN7@ObfGenJmpT: - 00170 48 8b 85 b8 06 + 0016e 48 8b 85 b8 06 00 00 mov rax, QWORD PTR tv133[rbp] - 00177 48 89 85 18 06 + 00175 48 89 85 18 06 00 00 mov QWORD PTR $T10[rbp], rax - 0017e 48 8b 85 18 06 + 0017c 48 8b 85 18 06 00 00 mov rax, QWORD PTR $T10[rbp] - 00185 48 89 85 18 03 + 00183 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)) - 0018c 48 8b 85 18 03 + 0018a 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 00193 48 83 c0 30 add rax, 48 ; 00000030H - 00197 48 8b 8d 18 03 + 00191 48 83 c0 30 add rax, 48 ; 00000030H + 00195 48 8b 8d 18 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 0019e 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 001a2 48 8b 8d 18 03 + 0019c 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 001a0 48 8b 8d 18 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 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 + 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 ; 78 : { ; 79 : delete Link; - 001b9 48 8b 85 18 03 + 001b7 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 001c0 48 89 85 58 06 + 001be 48 89 85 58 06 00 00 mov QWORD PTR $T12[rbp], rax - 001c7 48 83 bd 58 06 + 001c5 48 83 bd 58 06 00 00 00 cmp QWORD PTR $T12[rbp], 0 - 001cf 74 1a je SHORT $LN8@ObfGenJmpT - 001d1 ba 01 00 00 00 mov edx, 1 - 001d6 48 8b 8d 58 06 + 001cd 74 1a je SHORT $LN8@ObfGenJmpT + 001cf ba 01 00 00 00 mov edx, 1 + 001d4 48 8b 8d 58 06 00 00 mov rcx, QWORD PTR $T12[rbp] - 001dd e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 001e2 48 89 85 b8 06 + 001db e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 001e0 48 89 85 b8 06 00 00 mov QWORD PTR tv145[rbp], rax - 001e9 eb 0b jmp SHORT $LN9@ObfGenJmpT + 001e7 eb 0b jmp SHORT $LN9@ObfGenJmpT $LN8@ObfGenJmpT: - 001eb 48 c7 85 b8 06 + 001e9 48 c7 85 b8 06 00 00 00 00 00 00 mov QWORD PTR tv145[rbp], 0 $LN9@ObfGenJmpT: ; 80 : return NULL; - 001f6 33 c0 xor eax, eax - 001f8 eb 25 jmp SHORT $LN1@ObfGenJmpT + 001f4 33 c0 xor eax, eax + 001f6 eb 25 jmp SHORT $LN1@ObfGenJmpT $LN4@ObfGenJmpT: ; 81 : } ; 82 : Link->Label = LabelId; - 001fa 48 8b 85 18 03 + 001f8 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 00201 8b 8d f0 06 00 + 001ff 8b 8d f0 06 00 00 mov ecx, DWORD PTR LabelId$[rbp] - 00207 89 48 1c mov DWORD PTR [rax+28], ecx + 00205 89 48 1c mov DWORD PTR [rax+28], ecx ; 83 : Link->Flags = (CODE_FLAG_IS_INST | CODE_FLAG_IS_REL_JMP); - 0020a 48 8b 85 18 03 + 00208 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 00211 c7 40 18 06 00 + 0020f c7 40 18 06 00 00 00 mov DWORD PTR [rax+24], 6 ; 84 : ; 85 : return Link; - 00218 48 8b 85 18 03 + 00216 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] $LN1@ObfGenJmpT: ; 86 : } - 0021f 48 8b f8 mov rdi, rax - 00222 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00226 48 8d 15 00 00 + 0021d 48 8b f8 mov rdi, rax + 00220 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00224 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcFrameData - 0022d e8 00 00 00 00 call _RTC_CheckStackVars - 00232 48 8b c7 mov rax, rdi - 00235 48 8b 8d c0 06 + 0022b e8 00 00 00 00 call _RTC_CheckStackVars + 00230 48 8b c7 mov rax, rdi + 00233 48 8b 8d c0 06 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0023c 48 33 cd xor rcx, rbp - 0023f e8 00 00 00 00 call __security_check_cookie - 00244 48 8d a5 d0 06 + 0023a 48 33 cd xor rcx, rbp + 0023d e8 00 00 00 00 call __security_check_cookie + 00242 48 8d a5 d0 06 00 00 lea rsp, QWORD PTR [rbp+1744] - 0024b 5f pop rdi - 0024c 5e pop rsi - 0024d 5d pop rbp - 0024e c3 ret 0 + 00249 5f pop rdi + 0024a 5e pop rsi + 0024b 5d pop rbp + 0024c c3 ret 0 ?ObfGenJmpToLabel@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ENDP ; ObfGenJmpToLabel _TEXT ENDS ; COMDAT text$x @@ -1798,7 +1871,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:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z _TEXT SEGMENT MachineState$ = 8 @@ -1833,30 +1906,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 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 + 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 00 00 mov ecx, DWORD PTR [rsp+1864] - 0002f 48 8b 05 00 00 + 0002d 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 00036 48 33 c5 xor rax, rbp - 00039 48 89 85 e0 06 + 00034 48 33 c5 xor rax, rbp + 00037 48 89 85 e0 06 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00040 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp - 00047 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003e 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__BCD1AF07_OpaqueBranching@cpp + 00045 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 28 : XED_STATE MachineState; ; 29 : MachineState.mmode = XED_MACHINE_MODE_LONG_64; - 0004c c7 45 08 01 00 + 0004a c7 45 08 01 00 00 00 mov DWORD PTR MachineState$[rbp], 1 ; 30 : MachineState.stack_addr_width = XED_ADDRESS_WIDTH_64b; - 00053 c7 45 0c 08 00 + 00051 c7 45 0c 08 00 00 00 mov DWORD PTR MachineState$[rbp+4], 8 ; 31 : XED_ENCODER_INSTRUCTION EncoderInstruction; @@ -1866,211 +1939,211 @@ $LN11: ; 35 : ; 36 : XedInst1(&EncoderInstruction, MachineState, ObfGetRandomJccClass(), DisplacementWidth, XedRelBr(0, DisplacementWidth)); - 0005a 44 8b 85 18 07 + 00058 44 8b 85 18 07 00 00 mov r8d, DWORD PTR DisplacementWidth$[rbp] - 00061 33 d2 xor edx, edx - 00063 48 8d 8d c8 05 + 0005f 33 d2 xor edx, edx + 00061 48 8d 8d c8 05 00 00 lea rcx, QWORD PTR $T9[rbp] - 0006a e8 00 00 00 00 call xed_relbr - 0006f 48 8d 8d 78 05 + 00068 e8 00 00 00 00 call xed_relbr + 0006d 48 8d 8d 78 05 00 00 lea rcx, QWORD PTR $T8[rbp] - 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 + 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 00 mov DWORD PTR tv77[rbp], eax - 0008e 48 8b 45 08 mov rax, QWORD PTR MachineState$[rbp] - 00092 48 89 85 18 06 + 0008c 48 8b 45 08 mov rax, QWORD PTR MachineState$[rbp] + 00090 48 89 85 18 06 00 00 mov QWORD PTR $T10[rbp], rax - 00099 48 8d 85 a0 06 + 00097 48 8d 85 a0 06 00 00 lea rax, QWORD PTR $T14[rbp] - 000a0 48 8d 8d 78 05 + 0009e 48 8d 8d 78 05 00 00 lea rcx, QWORD PTR $T8[rbp] - 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 + 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 00 00 lea rax, QWORD PTR $T14[rbp] - 000bb 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000c0 44 8b 8d 18 07 + 000b9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000be 44 8b 8d 18 07 00 00 mov r9d, DWORD PTR DisplacementWidth$[rbp] - 000c7 44 8b 85 d4 06 + 000c5 44 8b 85 d4 06 00 00 mov r8d, DWORD PTR tv77[rbp] - 000ce 48 8b 95 18 06 + 000cc 48 8b 95 18 06 00 00 mov rdx, QWORD PTR $T10[rbp] - 000d5 48 8d 4d 30 lea rcx, QWORD PTR EncoderInstruction$[rbp] - 000d9 e8 00 00 00 00 call xed_inst1 + 000d3 48 8d 4d 30 lea rcx, QWORD PTR EncoderInstruction$[rbp] + 000d7 e8 00 00 00 00 call xed_inst1 ; 37 : ; 38 : XedEncoderRequestZeroSetMode(&EncoderRequest, &MachineState); - 000de 48 8d 55 08 lea rdx, QWORD PTR MachineState$[rbp] - 000e2 48 8d 8d f0 01 + 000dc 48 8d 55 08 lea rdx, QWORD PTR MachineState$[rbp] + 000e0 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 000e9 e8 00 00 00 00 call xed_encoder_request_zero_set_mode + 000e7 e8 00 00 00 00 call xed_encoder_request_zero_set_mode ; 39 : if (!XedConvertToEncoderRequest(&EncoderRequest, &EncoderInstruction)) - 000ee 48 8d 55 30 lea rdx, QWORD PTR EncoderInstruction$[rbp] - 000f2 48 8d 8d f0 01 + 000ec 48 8d 55 30 lea rdx, QWORD PTR EncoderInstruction$[rbp] + 000f0 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 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 + 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 ; 40 : return NULL; - 00102 33 c0 xor eax, eax - 00104 e9 30 01 00 00 jmp $LN1@ObfGenRand + 00100 33 c0 xor eax, eax + 00102 e9 30 01 00 00 jmp $LN1@ObfGenRand $LN2@ObfGenRand: ; 41 : ; 42 : if (XED_ERROR_NONE != XedEncode(&EncoderRequest, EncodeBuffer, 15, &ReturnedSize)) - 00109 4c 8d 8d f4 02 + 00107 4c 8d 8d f4 02 00 00 lea r9, QWORD PTR ReturnedSize$[rbp] - 00110 41 b8 0f 00 00 + 0010e 41 b8 0f 00 00 00 mov r8d, 15 - 00116 48 8d 95 c8 02 + 00114 48 8d 95 c8 02 00 00 lea rdx, QWORD PTR EncodeBuffer$[rbp] - 0011d 48 8d 8d f0 01 + 0011b 48 8d 8d f0 01 00 00 lea rcx, QWORD PTR EncoderRequest$[rbp] - 00124 e8 00 00 00 00 call xed_encode - 00129 85 c0 test eax, eax - 0012b 74 07 je SHORT $LN3@ObfGenRand + 00122 e8 00 00 00 00 call xed_encode + 00127 85 c0 test eax, eax + 00129 74 07 je SHORT $LN3@ObfGenRand ; 43 : return NULL; - 0012d 33 c0 xor eax, eax - 0012f e9 05 01 00 00 jmp $LN1@ObfGenRand + 0012b 33 c0 xor eax, eax + 0012d 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); - 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 + 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 00 00 mov QWORD PTR $T12[rbp], rax - 00145 48 83 bd 58 06 + 00143 48 83 bd 58 06 00 00 00 cmp QWORD PTR $T12[rbp], 0 - 0014d 74 30 je SHORT $LN6@ObfGenRand - 0014f c7 44 24 20 00 + 0014b 74 30 je SHORT $LN6@ObfGenRand + 0014d c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00157 44 8b 8d f4 02 + 00155 44 8b 8d f4 02 00 00 mov r9d, DWORD PTR ReturnedSize$[rbp] - 0015e 4c 8d 85 c8 02 + 0015c 4c 8d 85 c8 02 00 00 lea r8, QWORD PTR EncodeBuffer$[rbp] - 00165 ba 04 00 00 00 mov edx, 4 - 0016a 48 8b 8d 58 06 + 00163 ba 04 00 00 00 mov edx, 4 + 00168 48 8b 8d 58 06 00 00 mov rcx, QWORD PTR $T12[rbp] - 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 + 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 00 00 mov QWORD PTR tv137[rbp], rax - 0017d eb 0b jmp SHORT $LN7@ObfGenRand + 0017b eb 0b jmp SHORT $LN7@ObfGenRand $LN6@ObfGenRand: - 0017f 48 c7 85 d8 06 + 0017d 48 c7 85 d8 06 00 00 00 00 00 00 mov QWORD PTR tv137[rbp], 0 $LN7@ObfGenRand: - 0018a 48 8b 85 d8 06 + 00188 48 8b 85 d8 06 00 00 mov rax, QWORD PTR tv137[rbp] - 00191 48 89 85 38 06 + 0018f 48 89 85 38 06 00 00 mov QWORD PTR $T11[rbp], rax - 00198 48 8b 85 38 06 + 00196 48 8b 85 38 06 00 00 mov rax, QWORD PTR $T11[rbp] - 0019f 48 89 85 18 03 + 0019d 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)) - 001a6 48 8b 85 18 03 + 001a4 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 001ad 48 83 c0 30 add rax, 48 ; 00000030H - 001b1 48 8b 8d 18 03 + 001ab 48 83 c0 30 add rax, 48 ; 00000030H + 001af 48 8b 8d 18 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 001b8 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] - 001bc 48 8b 8d 18 03 + 001b6 44 8b 41 28 mov r8d, DWORD PTR [rcx+40] + 001ba 48 8b 8d 18 03 00 00 mov rcx, QWORD PTR Link$[rbp] - 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 + 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 ; 47 : { ; 48 : delete Link; - 001d3 48 8b 85 18 03 + 001d1 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 001da 48 89 85 78 06 + 001d8 48 89 85 78 06 00 00 mov QWORD PTR $T13[rbp], rax - 001e1 48 83 bd 78 06 + 001df 48 83 bd 78 06 00 00 00 cmp QWORD PTR $T13[rbp], 0 - 001e9 74 1a je SHORT $LN8@ObfGenRand - 001eb ba 01 00 00 00 mov edx, 1 - 001f0 48 8b 8d 78 06 + 001e7 74 1a je SHORT $LN8@ObfGenRand + 001e9 ba 01 00 00 00 mov edx, 1 + 001ee 48 8b 8d 78 06 00 00 mov rcx, QWORD PTR $T13[rbp] - 001f7 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z - 001fc 48 89 85 d8 06 + 001f5 e8 00 00 00 00 call ??_G_NATIVE_CODE_LINK@@QEAAPEAXI@Z + 001fa 48 89 85 d8 06 00 00 mov QWORD PTR tv149[rbp], rax - 00203 eb 0b jmp SHORT $LN9@ObfGenRand + 00201 eb 0b jmp SHORT $LN9@ObfGenRand $LN8@ObfGenRand: - 00205 48 c7 85 d8 06 + 00203 48 c7 85 d8 06 00 00 00 00 00 00 mov QWORD PTR tv149[rbp], 0 $LN9@ObfGenRand: ; 49 : return NULL; - 00210 33 c0 xor eax, eax - 00212 eb 25 jmp SHORT $LN1@ObfGenRand + 0020e 33 c0 xor eax, eax + 00210 eb 25 jmp SHORT $LN1@ObfGenRand $LN4@ObfGenRand: ; 50 : } ; 51 : Link->Label = LabelId; - 00214 48 8b 85 18 03 + 00212 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 0021b 8b 8d 10 07 00 + 00219 8b 8d 10 07 00 00 mov ecx, DWORD PTR LabelId$[rbp] - 00221 89 48 1c mov DWORD PTR [rax+28], ecx + 0021f 89 48 1c mov DWORD PTR [rax+28], ecx ; 52 : Link->Flags = (CODE_FLAG_IS_INST | CODE_FLAG_IS_REL_JMP); - 00224 48 8b 85 18 03 + 00222 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] - 0022b c7 40 18 06 00 + 00229 c7 40 18 06 00 00 00 mov DWORD PTR [rax+24], 6 ; 53 : ; 54 : return Link; - 00232 48 8b 85 18 03 + 00230 48 8b 85 18 03 00 00 mov rax, QWORD PTR Link$[rbp] $LN1@ObfGenRand: ; 55 : } - 00239 48 8b f8 mov rdi, rax - 0023c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00240 48 8d 15 00 00 + 00237 48 8b f8 mov rdi, rax + 0023a 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 0023e 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z$rtcFrameData - 00247 e8 00 00 00 00 call _RTC_CheckStackVars - 0024c 48 8b c7 mov rax, rdi - 0024f 48 8b 8d e0 06 + 00245 e8 00 00 00 00 call _RTC_CheckStackVars + 0024a 48 8b c7 mov rax, rdi + 0024d 48 8b 8d e0 06 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00256 48 33 cd xor rcx, rbp - 00259 e8 00 00 00 00 call __security_check_cookie - 0025e 48 8d a5 f0 06 + 00254 48 33 cd xor rcx, rbp + 00257 e8 00 00 00 00 call __security_check_cookie + 0025c 48 8d a5 f0 06 00 00 lea rsp, QWORD PTR [rbp+1776] - 00265 5f pop rdi - 00266 5e pop rsi - 00267 5d pop rbp - 00268 c3 ret 0 + 00263 5f pop rdi + 00264 5e pop rsi + 00265 5d pop rbp + 00266 c3 ret 0 ?ObfGenRandomJcc@@YAPEAU_NATIVE_CODE_LINK@@KK@Z ENDP ; ObfGenRandomJcc _TEXT ENDS ; COMDAT text$x @@ -2151,7 +2224,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:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ _TEXT SEGMENT tv66 = 192 @@ -2165,154 +2238,159 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A8BC9087_OpaqueBranching@cpp - 00016 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 5 : switch (rand() % 15) - 0001b ff 15 00 00 00 + 0002a ff 15 00 00 00 00 call QWORD PTR __imp_rand - 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 + 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 00 mov DWORD PTR tv66[rbp], eax - 00031 83 bd c0 00 00 + 00040 83 bd c0 00 00 00 0e cmp DWORD PTR tv66[rbp], 14 - 00038 0f 87 83 00 00 + 00047 0f 87 83 00 00 00 ja $LN2@ObfGetRand - 0003e 48 63 85 c0 00 + 0004d 48 63 85 c0 00 00 00 movsxd rax, DWORD PTR tv66[rbp] - 00045 48 8d 0d 00 00 + 00054 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:__ImageBase - 0004c 8b 84 81 00 00 + 0005b 8b 84 81 00 00 00 00 mov eax, DWORD PTR $LN20@ObfGetRand[rcx+rax*4] - 00053 48 03 c1 add rax, rcx - 00056 ff e0 jmp rax + 00062 48 03 c1 add rax, rcx + 00065 ff e0 jmp rax $LN4@ObfGetRand: ; 6 : { ; 7 : case 0: return XED_ICLASS_JL; - 00058 b8 3a 01 00 00 mov eax, 314 ; 0000013aH - 0005d eb 67 jmp SHORT $LN1@ObfGetRand + 00067 b8 3a 01 00 00 mov eax, 314 ; 0000013aH + 0006c eb 67 jmp SHORT $LN1@ObfGetRand $LN5@ObfGetRand: ; 8 : case 1: return XED_ICLASS_JLE; - 0005f b8 3b 01 00 00 mov eax, 315 ; 0000013bH - 00064 eb 60 jmp SHORT $LN1@ObfGetRand + 0006e b8 3b 01 00 00 mov eax, 315 ; 0000013bH + 00073 eb 60 jmp SHORT $LN1@ObfGetRand $LN6@ObfGetRand: ; 9 : case 2: return XED_ICLASS_JNB; - 00066 b8 3e 01 00 00 mov eax, 318 ; 0000013eH - 0006b eb 59 jmp SHORT $LN1@ObfGetRand + 00075 b8 3e 01 00 00 mov eax, 318 ; 0000013eH + 0007a eb 59 jmp SHORT $LN1@ObfGetRand $LN7@ObfGetRand: ; 10 : case 3: return XED_ICLASS_JNBE; - 0006d b8 3f 01 00 00 mov eax, 319 ; 0000013fH - 00072 eb 52 jmp SHORT $LN1@ObfGetRand + 0007c b8 3f 01 00 00 mov eax, 319 ; 0000013fH + 00081 eb 52 jmp SHORT $LN1@ObfGetRand $LN8@ObfGetRand: ; 11 : case 4: return XED_ICLASS_JNL; - 00074 b8 40 01 00 00 mov eax, 320 ; 00000140H - 00079 eb 4b jmp SHORT $LN1@ObfGetRand + 00083 b8 40 01 00 00 mov eax, 320 ; 00000140H + 00088 eb 4b jmp SHORT $LN1@ObfGetRand $LN9@ObfGetRand: ; 12 : case 5: return XED_ICLASS_JNLE; - 0007b b8 41 01 00 00 mov eax, 321 ; 00000141H - 00080 eb 44 jmp SHORT $LN1@ObfGetRand + 0008a b8 41 01 00 00 mov eax, 321 ; 00000141H + 0008f eb 44 jmp SHORT $LN1@ObfGetRand $LN10@ObfGetRand: ; 13 : case 6: return XED_ICLASS_JNO; - 00082 b8 42 01 00 00 mov eax, 322 ; 00000142H - 00087 eb 3d jmp SHORT $LN1@ObfGetRand + 00091 b8 42 01 00 00 mov eax, 322 ; 00000142H + 00096 eb 3d jmp SHORT $LN1@ObfGetRand $LN11@ObfGetRand: ; 14 : case 7: return XED_ICLASS_JNP; - 00089 b8 43 01 00 00 mov eax, 323 ; 00000143H - 0008e eb 36 jmp SHORT $LN1@ObfGetRand + 00098 b8 43 01 00 00 mov eax, 323 ; 00000143H + 0009d eb 36 jmp SHORT $LN1@ObfGetRand $LN12@ObfGetRand: ; 15 : case 8: return XED_ICLASS_JNS; - 00090 b8 44 01 00 00 mov eax, 324 ; 00000144H - 00095 eb 2f jmp SHORT $LN1@ObfGetRand + 0009f b8 44 01 00 00 mov eax, 324 ; 00000144H + 000a4 eb 2f jmp SHORT $LN1@ObfGetRand $LN13@ObfGetRand: ; 16 : case 9: return XED_ICLASS_JNZ; - 00097 b8 45 01 00 00 mov eax, 325 ; 00000145H - 0009c eb 28 jmp SHORT $LN1@ObfGetRand + 000a6 b8 45 01 00 00 mov eax, 325 ; 00000145H + 000ab eb 28 jmp SHORT $LN1@ObfGetRand $LN14@ObfGetRand: ; 17 : case 10: return XED_ICLASS_JO; - 0009e b8 46 01 00 00 mov eax, 326 ; 00000146H - 000a3 eb 21 jmp SHORT $LN1@ObfGetRand + 000ad b8 46 01 00 00 mov eax, 326 ; 00000146H + 000b2 eb 21 jmp SHORT $LN1@ObfGetRand $LN15@ObfGetRand: ; 18 : case 11: return XED_ICLASS_JP; - 000a5 b8 47 01 00 00 mov eax, 327 ; 00000147H - 000aa eb 1a jmp SHORT $LN1@ObfGetRand + 000b4 b8 47 01 00 00 mov eax, 327 ; 00000147H + 000b9 eb 1a jmp SHORT $LN1@ObfGetRand $LN16@ObfGetRand: ; 19 : case 12: return XED_ICLASS_JRCXZ; - 000ac b8 48 01 00 00 mov eax, 328 ; 00000148H - 000b1 eb 13 jmp SHORT $LN1@ObfGetRand + 000bb b8 48 01 00 00 mov eax, 328 ; 00000148H + 000c0 eb 13 jmp SHORT $LN1@ObfGetRand $LN17@ObfGetRand: ; 20 : case 13: return XED_ICLASS_JS; - 000b3 b8 49 01 00 00 mov eax, 329 ; 00000149H - 000b8 eb 0c jmp SHORT $LN1@ObfGetRand + 000c2 b8 49 01 00 00 mov eax, 329 ; 00000149H + 000c7 eb 0c jmp SHORT $LN1@ObfGetRand $LN18@ObfGetRand: ; 21 : case 14: return XED_ICLASS_JZ; - 000ba b8 4a 01 00 00 mov eax, 330 ; 0000014aH - 000bf eb 05 jmp SHORT $LN1@ObfGetRand + 000c9 b8 4a 01 00 00 mov eax, 330 ; 0000014aH + 000ce eb 05 jmp SHORT $LN1@ObfGetRand $LN2@ObfGetRand: ; 22 : } ; 23 : return XED_ICLASS_JLE; - 000c1 b8 3b 01 00 00 mov eax, 315 ; 0000013bH + 000d0 b8 3b 01 00 00 mov eax, 315 ; 0000013bH $LN1@ObfGetRand: ; 24 : } - 000c6 48 8d a5 d8 00 + 000d5 48 8d a5 d8 00 00 00 lea rsp, QWORD PTR [rbp+216] - 000cd 5f pop rdi - 000ce 5d pop rbp - 000cf c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de c3 ret 0 + 000df 90 npad 1 $LN20@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 + 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 ?ObfGetRandomJccClass@@YA?AW4xed_iclass_enum_t@@XZ ENDP ; ObfGetRandomJccClass _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -2329,30 +2407,36 @@ $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 8d e0 00 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0001e e8 00 00 00 00 call ??1_NATIVE_CODE_LINK@@QEAA@XZ ; _NATIVE_CODE_LINK::~_NATIVE_CODE_LINK - 00023 8b 85 e8 00 00 + 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 00 mov eax, DWORD PTR __flags$[rbp] - 00029 83 e0 01 and eax, 1 - 0002c 85 c0 test eax, eax - 0002e 74 11 je SHORT $LN2@scalar - 00030 ba f0 00 00 00 mov edx, 240 ; 000000f0H - 00035 48 8b 8d e0 00 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0003c e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete + 00053 e8 00 00 00 00 call ??3@YAXPEAX_K@Z ; operator delete $LN2@scalar: - 00041 48 8b 85 e0 00 + 00058 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00048 48 8d a5 c8 00 + 0005f 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0004f 5f pop rdi - 00050 5d pop rbp - 00051 c3 ret 0 + 00066 5f pop rdi + 00067 5d pop rbp + 00068 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:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h ; COMDAT xed_inst1 _TEXT SEGMENT inst$ = 224 @@ -2374,80 +2458,86 @@ 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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__1C89993E_xed-encoder-hl@h - 0002a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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:__CDA14B9B_xed-encoder-hl@h + 00041 e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 491 : ; 492 : inst->mode=mode; - 0002f 48 8b 85 e0 00 + 00046 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 00036 48 8b 8d e8 00 + 0004d 48 8b 8d e8 00 00 00 mov rcx, QWORD PTR mode$[rbp] - 0003d 48 89 08 mov QWORD PTR [rax], rcx + 00054 48 89 08 mov QWORD PTR [rax], rcx ; 493 : inst->iclass = iclass; - 00040 48 8b 85 e0 00 + 00057 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 00047 8b 8d f0 00 00 + 0005e 8b 8d f0 00 00 00 mov ecx, DWORD PTR iclass$[rbp] - 0004d 89 48 08 mov DWORD PTR [rax+8], ecx + 00064 89 48 08 mov DWORD PTR [rax+8], ecx ; 494 : inst->effective_operand_width = effective_operand_width; - 00050 48 8b 85 e0 00 + 00067 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 00057 8b 8d f8 00 00 + 0006e 8b 8d f8 00 00 00 mov ecx, DWORD PTR effective_operand_width$[rbp] - 0005d 89 48 0c mov DWORD PTR [rax+12], ecx + 00074 89 48 0c mov DWORD PTR [rax+12], ecx ; 495 : inst->effective_address_width = 0; - 00060 48 8b 85 e0 00 + 00077 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 00067 c7 40 10 00 00 + 0007e c7 40 10 00 00 00 00 mov DWORD PTR [rax+16], 0 ; 496 : inst->prefixes.i = 0; - 0006e 48 8b 85 e0 00 + 00085 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 00075 c7 40 14 00 00 + 0008c c7 40 14 00 00 00 00 mov DWORD PTR [rax+20], 0 ; 497 : inst->operands[0] = op0; - 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 + 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 00 00 mov rcx, QWORD PTR inst$[rbp] - 0008c 48 8d 7c 01 20 lea rdi, QWORD PTR [rcx+rax+32] - 00091 48 8b b5 00 01 + 000a3 48 8d 7c 01 20 lea rdi, QWORD PTR [rcx+rax+32] + 000a8 48 8b b5 00 01 00 00 mov rsi, QWORD PTR op0$[rbp] - 00098 b9 30 00 00 00 mov ecx, 48 ; 00000030H - 0009d f3 a4 rep movsb + 000af b9 30 00 00 00 mov ecx, 48 ; 00000030H + 000b4 f3 a4 rep movsb ; 498 : inst->noperands = 1; - 0009f 48 8b 85 e0 00 + 000b6 48 8b 85 e0 00 00 00 mov rax, QWORD PTR inst$[rbp] - 000a6 c7 40 18 01 00 + 000bd c7 40 18 01 00 00 00 mov DWORD PTR [rax+24], 1 ; 499 : } - 000ad 48 8d a5 c0 00 + 000c4 48 8d a5 c0 00 00 00 lea rsp, QWORD PTR [rbp+192] - 000b4 5f pop rdi - 000b5 5e pop rsi - 000b6 5d pop rbp - 000b7 c3 ret 0 + 000cb 5f pop rdi + 000cc 5e pop rsi + 000cd 5d pop rbp + 000ce c3 ret 0 xed_inst1 ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\build\obj\wkit\include\xed\xed-encoder-hl.h ; COMDAT xed_relbr _TEXT SEGMENT o$ = 8 @@ -2468,72 +2558,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 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 + 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 01 00 00 mov rcx, QWORD PTR [rsp+344] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 08 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 08 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 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 + 00045 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__CDA14B9B_xed-encoder-hl@h + 0004c e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 106 : xed_encoder_operand_t o; ; 107 : o.type = XED_ENCODER_OPERAND_TYPE_BRDISP; - 00053 c7 45 08 01 00 + 00051 c7 45 08 01 00 00 00 mov DWORD PTR o$[rbp], 1 ; 108 : o.u.brdisp = brdisp; - 0005a 8b 85 38 01 00 + 00058 8b 85 38 01 00 00 mov eax, DWORD PTR brdisp$[rbp] - 00060 89 45 10 mov DWORD PTR o$[rbp+8], eax + 0005e 89 45 10 mov DWORD PTR o$[rbp+8], eax ; 109 : o.width_bits = width_bits; - 00063 8b 85 40 01 00 + 00061 8b 85 40 01 00 00 mov eax, DWORD PTR width_bits$[rbp] - 00069 89 45 30 mov DWORD PTR o$[rbp+40], eax + 00067 89 45 30 mov DWORD PTR o$[rbp+40], eax ; 110 : return o; - 0006c 48 8d 45 08 lea rax, QWORD PTR o$[rbp] - 00070 48 8b bd 30 01 + 0006a 48 8d 45 08 lea rax, QWORD PTR o$[rbp] + 0006e 48 8b bd 30 01 00 00 mov rdi, QWORD PTR $T4[rbp] - 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 + 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 00 00 mov rax, QWORD PTR $T4[rbp] ; 111 : } - 00088 48 8b f8 mov rdi, rax - 0008b 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] - 0008f 48 8d 15 00 00 + 00086 48 8b f8 mov rdi, rax + 00089 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32] + 0008d 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:xed_relbr$rtcFrameData - 00096 e8 00 00 00 00 call _RTC_CheckStackVars - 0009b 48 8b c7 mov rax, rdi - 0009e 48 8b 8d 08 01 + 00094 e8 00 00 00 00 call _RTC_CheckStackVars + 00099 48 8b c7 mov rax, rdi + 0009c 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 000a5 48 33 cd xor rcx, rbp - 000a8 e8 00 00 00 00 call __security_check_cookie - 000ad 48 8d a5 10 01 + 000a3 48 33 cd xor rcx, rbp + 000a6 e8 00 00 00 00 call __security_check_cookie + 000ab 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 000b4 5f pop rdi - 000b5 5e pop rsi - 000b6 5d pop rbp - 000b7 c3 ret 0 + 000b2 5f pop rdi + 000b3 5e pop rsi + 000b4 5d pop rbp + 000b5 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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -2544,7 +2634,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -2556,141 +2646,147 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -2701,7 +2797,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -2713,141 +2809,147 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -2858,7 +2960,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -2869,98 +2971,104 @@ $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 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 + 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 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 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 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 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 $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 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 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de 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.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -2977,73 +3085,79 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 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__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -3062,7 +3176,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : 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 @@ -3073,251 +3187,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 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 + 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 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 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 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 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 -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 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 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 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 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 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 -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 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 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -3340,34 +3454,40 @@ $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 8d 0d 00 00 + 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:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 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 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -3384,18 +3504,25 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -3410,18 +3537,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -3436,18 +3570,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\OpaqueBranching.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -3460,14 +3601,21 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 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 abd52da..8ffc477 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.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 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 -__02E23235_vcruntime_new@h DB 01H +__8906660C_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,55 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__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 __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__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 +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_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 msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -98,9 +97,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@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@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 @@ -123,6 +122,7 @@ 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+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 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+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+379 + DD imagerel $LN6+377 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+377 + DD imagerel $LN6+375 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+368 + DD imagerel $LN6+366 DD imagerel $unwind$?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -241,32 +241,22 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@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' +??_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' 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 @@ -278,7 +268,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 0feH + DB 0faH DB 02H DB 09eH DB 00H @@ -297,7 +287,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 035054619H +$unwind$?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H DD 0117331cH DD 070100031H DD 0500fH @@ -324,16 +314,6 @@ 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 @@ -345,7 +325,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 01dH, 02H + DB 015H, 02H DB 02H DB 09eH DB 00H @@ -364,7 +344,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 035054619H +$unwind$?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H DD 0117331cH DD 070100033H DD 0500fH @@ -391,16 +371,6 @@ 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 @@ -412,7 +382,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 @@ -431,7 +401,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 035054619H +$unwind$?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H DD 0117331cH DD 070100033H DD 0500fH @@ -460,40 +430,35 @@ 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 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -538,38 +503,90 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$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 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 -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H +$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 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 -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$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 DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$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 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 @@ -579,7 +596,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 4 @@ -604,125 +621,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 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 + 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 01 00 00 mov rcx, QWORD PTR [rsp+424] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 40 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 29 : UCHAR RawData[] = { 0x80, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 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 + 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 ; 30 : ; 31 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 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 + 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 00 00 mov QWORD PTR $T5[rbp], rax - 0007f 48 83 bd 28 01 + 0007d 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00087 74 2c je SHORT $LN3@JitEmitRip - 00089 c7 44 24 20 00 + 00085 74 2c je SHORT $LN3@JitEmitRip + 00087 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00091 41 b9 07 00 00 + 0008f 41 b9 07 00 00 00 mov r9d, 7 - 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 + 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 00 00 mov rcx, QWORD PTR $T5[rbp] - 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 + 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 00 00 mov QWORD PTR tv79[rbp], rax - 000b3 eb 0b jmp SHORT $LN4@JitEmitRip + 000b1 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000b5 48 c7 85 38 01 + 000b3 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c0 48 8b 85 38 01 + 000be 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000c7 48 89 85 08 01 + 000c5 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000ce 48 8b 85 08 01 + 000cc 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000d5 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000d3 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 32 : *(PINT32)&Link->RawData[2] = RipDelta; - 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 + 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 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f0 89 14 08 mov DWORD PTR [rax+rcx], edx + 000ee 89 14 08 mov DWORD PTR [rax+rcx], edx ; 33 : *(PUCHAR)&Link->RawData[6] = (UCHAR)Value; - 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 + 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 00 00 movzx edx, BYTE PTR Value$[rbp] - 0010b 88 14 08 mov BYTE PTR [rax+rcx], dl + 00109 88 14 08 mov BYTE PTR [rax+rcx], dl ; 34 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 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 + 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 ; 35 : NcAppendToBlock(Block, Link); - 0012e 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 00132 48 8b 8d 70 01 + 0012c 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 00130 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00139 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00137 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 36 : return TRUE; - 0013e b8 01 00 00 00 mov eax, 1 + 0013c b8 01 00 00 00 mov eax, 1 ; 37 : } - 00143 8b f8 mov edi, eax - 00145 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00149 48 8d 15 00 00 + 00141 8b f8 mov edi, eax + 00143 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00147 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 00150 e8 00 00 00 00 call _RTC_CheckStackVars - 00155 8b c7 mov eax, edi - 00157 48 8b 8d 40 01 + 0014e e8 00 00 00 00 call _RTC_CheckStackVars + 00153 8b c7 mov eax, edi + 00155 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0015e 48 33 cd xor rcx, rbp - 00161 e8 00 00 00 00 call __security_check_cookie - 00166 48 8d a5 58 01 + 0015c 48 33 cd xor rcx, rbp + 0015f e8 00 00 00 00 call __security_check_cookie + 00164 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 0016d 5f pop rdi - 0016e 5d pop rbp - 0016f c3 ret 0 + 0016b 5f pop rdi + 0016c 5d pop rbp + 0016d c3 ret 0 ?JitEmitRipRelativeAndB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeAndB _TEXT ENDS ; COMDAT text$x @@ -783,7 +800,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:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -808,127 +825,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 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 + 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 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 50 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 17 : UCHAR RawData[] = { 0x66, 0x83, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 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 + 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 ; 18 : ; 19 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 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 + 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 00 00 mov QWORD PTR $T5[rbp], rax - 00087 48 83 bd 38 01 + 00085 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0008f 74 2c je SHORT $LN3@JitEmitRip - 00091 c7 44 24 20 00 + 0008d 74 2c je SHORT $LN3@JitEmitRip + 0008f c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00099 41 b9 09 00 00 + 00097 41 b9 09 00 00 00 mov r9d, 9 - 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 + 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 00 00 mov rcx, QWORD PTR $T5[rbp] - 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 + 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 00 00 mov QWORD PTR tv79[rbp], rax - 000bb eb 0b jmp SHORT $LN4@JitEmitRip + 000b9 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bd 48 c7 85 48 01 + 000bb 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c8 48 8b 85 48 01 + 000c6 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000cf 48 89 85 18 01 + 000cd 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d6 48 8b 85 18 01 + 000d4 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000dd 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000db 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 20 : *(PINT32)&Link->RawData[3] = RipDelta; - 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 + 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 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f8 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f6 89 14 08 mov DWORD PTR [rax+rcx], edx ; 21 : *(PUSHORT)&Link->RawData[7] = (USHORT)Value; - 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 + 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 00 00 movzx edx, WORD PTR Value$[rbp] - 00113 66 89 14 08 mov WORD PTR [rax+rcx], dx + 00111 66 89 14 08 mov WORD PTR [rax+rcx], dx ; 22 : 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 + 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 ; 23 : NcAppendToBlock(Block, Link); - 00137 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 0013b 48 8b 8d 80 01 + 00135 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 00139 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 + 00140 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 24 : return TRUE; - 00147 b8 01 00 00 00 mov eax, 1 + 00145 b8 01 00 00 00 mov eax, 1 ; 25 : } - 0014c 8b f8 mov edi, eax - 0014e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00152 48 8d 15 00 00 + 0014a 8b f8 mov edi, eax + 0014c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00150 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeAndW@@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 + 00157 e8 00 00 00 00 call _RTC_CheckStackVars + 0015c 8b c7 mov eax, edi + 0015e 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 + 00165 48 33 cd xor rcx, rbp + 00168 e8 00 00 00 00 call __security_check_cookie + 0016d 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 + 00174 5f pop rdi + 00175 5d pop rbp + 00176 c3 ret 0 ?JitEmitRipRelativeAndW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeAndW _TEXT ENDS ; COMDAT text$x @@ -989,7 +1006,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:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -1014,128 +1031,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 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 + 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 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 50 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__4D8C5412_RipAndInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__FA14AA08_RipAndInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : UCHAR RawData[] = { 0x81, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 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 + 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 ; 6 : ; 7 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 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 + 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 00 00 mov QWORD PTR $T5[rbp], rax - 0008b 48 83 bd 38 01 + 00089 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00093 74 2c je SHORT $LN3@JitEmitRip - 00095 c7 44 24 20 00 + 00091 74 2c je SHORT $LN3@JitEmitRip + 00093 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0009d 41 b9 0a 00 00 + 0009b 41 b9 0a 00 00 00 mov r9d, 10 - 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 + 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 00 00 mov rcx, QWORD PTR $T5[rbp] - 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 + 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 00 00 mov QWORD PTR tv79[rbp], rax - 000bf eb 0b jmp SHORT $LN4@JitEmitRip + 000bd eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000c1 48 c7 85 48 01 + 000bf 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000cc 48 8b 85 48 01 + 000ca 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000d3 48 89 85 18 01 + 000d1 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000da 48 8b 85 18 01 + 000d8 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000e1 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000df 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 8 : *(PINT32)&Link->RawData[2] = RipDelta; - 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 + 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 00 mov edx, DWORD PTR RipDelta$[rbp] - 000fc 89 14 08 mov DWORD PTR [rax+rcx], edx + 000fa 89 14 08 mov DWORD PTR [rax+rcx], edx ; 9 : *(PULONG)&Link->RawData[6] = Value; - 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 + 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 00 mov edx, DWORD PTR Value$[rbp] - 00116 89 14 08 mov DWORD PTR [rax+rcx], edx + 00114 89 14 08 mov DWORD PTR [rax+rcx], edx ; 10 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 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 + 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 ; 11 : NcAppendToBlock(Block, Link); - 00139 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 0013d 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] - 00144 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 ; 12 : return TRUE; - 00149 b8 01 00 00 00 mov eax, 1 + 00147 b8 01 00 00 00 mov eax, 1 ; 13 : } - 0014e 8b f8 mov edi, eax - 00150 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00154 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:?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 0015b e8 00 00 00 00 call _RTC_CheckStackVars - 00160 8b c7 mov eax, edi - 00162 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] - 00169 48 33 cd xor rcx, rbp - 0016c e8 00 00 00 00 call __security_check_cookie - 00171 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] - 00178 5f pop rdi - 00179 5d pop rbp - 0017a c3 ret 0 + 00176 5f pop rdi + 00177 5d pop rbp + 00178 c3 ret 0 ?JitEmitRipRelativeAndD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeAndD _TEXT ENDS ; COMDAT text$x @@ -1196,7 +1213,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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -1207,7 +1224,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -1219,141 +1236,147 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -1364,7 +1387,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -1376,141 +1399,147 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1521,7 +1550,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1532,98 +1561,104 @@ $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 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 + 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 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 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 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 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 $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 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 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de 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.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -1640,73 +1675,79 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 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__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1725,7 +1766,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : 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 @@ -1736,251 +1777,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 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 + 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 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 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 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 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 -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 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 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 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 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 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 -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 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 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -2003,34 +2044,40 @@ $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 8d 0d 00 00 + 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:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 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 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2047,18 +2094,25 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2073,18 +2127,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -2099,18 +2160,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipAndInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipAndInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -2123,14 +2191,21 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 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 5e96e34..8bdc77f 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.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 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 -__02E23235_vcruntime_new@h DB 01H +__8906660C_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,55 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__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 __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__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 +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_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 msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -98,9 +97,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@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@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 @@ -123,6 +122,7 @@ 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+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 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+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD imagerel $LN6 - DD imagerel $LN6+391 + DD imagerel $LN6+389 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+387 + DD imagerel $LN6+385 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+371 + DD imagerel $LN6+369 DD imagerel $unwind$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z pdata ENDS ; COMDAT pdata @@ -241,32 +241,22 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@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' +??_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' 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 @@ -278,7 +268,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 06H DB 00H DB 00H - DB 0feH + DB 0faH DB 02H DB 09eH DB 00H @@ -297,7 +287,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 035054619H +$unwind$?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 035054419H DD 0117331cH DD 070100031H DD 0500fH @@ -324,16 +314,6 @@ 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 @@ -345,7 +325,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DB 06H DB 00H DB 00H - DB 01dH, 02H + DB 015H, 02H DB 02H DB 09eH DB 00H @@ -364,7 +344,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 035054619H +$unwind$?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 035054419H DD 0117331cH DD 070100033H DD 0500fH @@ -391,16 +371,6 @@ 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 @@ -412,7 +382,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 @@ -431,7 +401,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 035054619H +$unwind$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD 035054419H DD 0117331cH DD 070100033H DD 0500fH @@ -460,40 +430,35 @@ 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 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -538,38 +503,90 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$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 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 -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H +$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 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 -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$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 DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$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 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 @@ -579,7 +596,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z _TEXT SEGMENT RawData$ = 4 @@ -604,126 +621,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 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 + 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 01 00 00 mov rcx, QWORD PTR [rsp+424] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 40 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 29 : UCHAR RawData[] = { 0xC6, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 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 + 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 ; 30 : ; 31 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 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 + 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 00 00 mov QWORD PTR $T5[rbp], rax - 0007f 48 83 bd 28 01 + 0007d 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00087 74 2c je SHORT $LN3@JitEmitRip - 00089 c7 44 24 20 00 + 00085 74 2c je SHORT $LN3@JitEmitRip + 00087 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00091 41 b9 07 00 00 + 0008f 41 b9 07 00 00 00 mov r9d, 7 - 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 + 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 00 00 mov rcx, QWORD PTR $T5[rbp] - 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 + 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 00 00 mov QWORD PTR tv79[rbp], rax - 000b3 eb 0b jmp SHORT $LN4@JitEmitRip + 000b1 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000b5 48 c7 85 38 01 + 000b3 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c0 48 8b 85 38 01 + 000be 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000c7 48 89 85 08 01 + 000c5 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000ce 48 8b 85 08 01 + 000cc 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000d5 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000d3 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 32 : *(PINT32)&Link->RawData[2] = RipDelta; - 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 + 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 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f0 89 14 08 mov DWORD PTR [rax+rcx], edx + 000ee 89 14 08 mov DWORD PTR [rax+rcx], edx ; 33 : Link->RawData[6] = *Data; - 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 + 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 00 00 mov rdx, QWORD PTR Data$[rbp] - 0010b 0f b6 12 movzx edx, BYTE PTR [rdx] - 0010e 88 14 08 mov BYTE PTR [rax+rcx], dl + 00109 0f b6 12 movzx edx, BYTE PTR [rdx] + 0010c 88 14 08 mov BYTE PTR [rax+rcx], dl ; 34 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 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 + 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 ; 35 : NcAppendToBlock(Block, Link); - 00131 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 00135 48 8b 8d 70 01 + 0012f 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 00133 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 0013c e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 0013a e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 36 : return TRUE; - 00141 b8 01 00 00 00 mov eax, 1 + 0013f b8 01 00 00 00 mov eax, 1 ; 37 : } - 00146 8b f8 mov edi, eax - 00148 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 0014c 48 8d 15 00 00 + 00144 8b f8 mov edi, eax + 00146 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 0014a 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcFrameData - 00153 e8 00 00 00 00 call _RTC_CheckStackVars - 00158 8b c7 mov eax, edi - 0015a 48 8b 8d 40 01 + 00151 e8 00 00 00 00 call _RTC_CheckStackVars + 00156 8b c7 mov eax, edi + 00158 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00161 48 33 cd xor rcx, rbp - 00164 e8 00 00 00 00 call __security_check_cookie - 00169 48 8d a5 58 01 + 0015f 48 33 cd xor rcx, rbp + 00162 e8 00 00 00 00 call __security_check_cookie + 00167 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 00170 5f pop rdi - 00171 5d pop rbp - 00172 c3 ret 0 + 0016e 5f pop rdi + 0016f 5d pop rbp + 00170 c3 ret 0 ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ENDP ; JitEmitRipRelativeMovB _TEXT ENDS ; COMDAT text$x @@ -784,7 +801,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:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z _TEXT SEGMENT RawData$ = 8 @@ -809,130 +826,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 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 + 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 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 50 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 17 : UCHAR RawData[] = { 0x66, 0xC7, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 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 + 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 ; 18 : ; 19 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 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 + 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 00 00 mov QWORD PTR $T5[rbp], rax - 00087 48 83 bd 38 01 + 00085 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0008f 74 2c je SHORT $LN3@JitEmitRip - 00091 c7 44 24 20 00 + 0008d 74 2c je SHORT $LN3@JitEmitRip + 0008f c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00099 41 b9 09 00 00 + 00097 41 b9 09 00 00 00 mov r9d, 9 - 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 + 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 00 00 mov rcx, QWORD PTR $T5[rbp] - 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 + 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 00 00 mov QWORD PTR tv79[rbp], rax - 000bb eb 0b jmp SHORT $LN4@JitEmitRip + 000b9 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bd 48 c7 85 48 01 + 000bb 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c8 48 8b 85 48 01 + 000c6 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000cf 48 89 85 18 01 + 000cd 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d6 48 8b 85 18 01 + 000d4 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000dd 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000db 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 20 : *(PINT32)&Link->RawData[3] = RipDelta; - 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 + 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 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f8 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f6 89 14 08 mov DWORD PTR [rax+rcx], edx ; 21 : RtlCopyMemory(&Link->RawData[7], Data, 2); - 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 + 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 00 mov r8d, 2 - 00112 48 8b 95 90 01 + 00110 48 8b 95 90 01 00 00 mov rdx, QWORD PTR Data$[rbp] - 00119 48 8b c8 mov rcx, rax - 0011c e8 00 00 00 00 call memcpy + 00117 48 8b c8 mov rcx, rax + 0011a e8 00 00 00 00 call memcpy ; 22 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 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 + 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 ; 23 : NcAppendToBlock(Block, Link); - 00141 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 00145 48 8b 8d 80 01 + 0013f 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 00143 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 0014c e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 0014a e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 24 : return TRUE; - 00151 b8 01 00 00 00 mov eax, 1 + 0014f b8 01 00 00 00 mov eax, 1 ; 25 : } - 00156 8b f8 mov edi, eax - 00158 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 0015c 48 8d 15 00 00 + 00154 8b f8 mov edi, eax + 00156 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 0015a 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcFrameData - 00163 e8 00 00 00 00 call _RTC_CheckStackVars - 00168 8b c7 mov eax, edi - 0016a 48 8b 8d 50 01 + 00161 e8 00 00 00 00 call _RTC_CheckStackVars + 00166 8b c7 mov eax, edi + 00168 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00171 48 33 cd xor rcx, rbp - 00174 e8 00 00 00 00 call __security_check_cookie - 00179 48 8d a5 68 01 + 0016f 48 33 cd xor rcx, rbp + 00172 e8 00 00 00 00 call __security_check_cookie + 00177 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00180 5f pop rdi - 00181 5d pop rbp - 00182 c3 ret 0 + 0017e 5f pop rdi + 0017f 5d pop rbp + 00180 c3 ret 0 ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ENDP ; JitEmitRipRelativeMovW _TEXT ENDS ; COMDAT text$x @@ -993,7 +1010,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:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z _TEXT SEGMENT RawData$ = 8 @@ -1018,131 +1035,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 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 + 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 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 50 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__2A62C71C_RipMovInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : UCHAR RawData[] = { 0xC7, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 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 + 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 ; 6 : ; 7 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 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 + 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 00 00 mov QWORD PTR $T5[rbp], rax - 0008b 48 83 bd 38 01 + 00089 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00093 74 2c je SHORT $LN3@JitEmitRip - 00095 c7 44 24 20 00 + 00091 74 2c je SHORT $LN3@JitEmitRip + 00093 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0009d 41 b9 0a 00 00 + 0009b 41 b9 0a 00 00 00 mov r9d, 10 - 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 + 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 00 00 mov rcx, QWORD PTR $T5[rbp] - 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 + 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 00 00 mov QWORD PTR tv79[rbp], rax - 000bf eb 0b jmp SHORT $LN4@JitEmitRip + 000bd eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000c1 48 c7 85 48 01 + 000bf 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000cc 48 8b 85 48 01 + 000ca 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000d3 48 89 85 18 01 + 000d1 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000da 48 8b 85 18 01 + 000d8 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000e1 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000df 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 8 : *(PINT32)&Link->RawData[2] = RipDelta; - 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 + 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 00 mov edx, DWORD PTR RipDelta$[rbp] - 000fc 89 14 08 mov DWORD PTR [rax+rcx], edx + 000fa 89 14 08 mov DWORD PTR [rax+rcx], edx ; 9 : RtlCopyMemory(&Link->RawData[6], Data, 4); - 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 + 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 00 mov r8d, 4 - 00116 48 8b 95 90 01 + 00114 48 8b 95 90 01 00 00 mov rdx, QWORD PTR Data$[rbp] - 0011d 48 8b c8 mov rcx, rax - 00120 e8 00 00 00 00 call memcpy + 0011b 48 8b c8 mov rcx, rax + 0011e e8 00 00 00 00 call memcpy ; 10 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 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 + 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 ; 11 : NcAppendToBlock(Block, Link); - 00145 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 00149 48 8b 8d 80 01 + 00143 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 00147 48 8b 8d 80 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00150 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 0014e e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 12 : return TRUE; - 00155 b8 01 00 00 00 mov eax, 1 + 00153 b8 01 00 00 00 mov eax, 1 ; 13 : } - 0015a 8b f8 mov edi, eax - 0015c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00160 48 8d 15 00 00 + 00158 8b f8 mov edi, eax + 0015a 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 0015e 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcFrameData - 00167 e8 00 00 00 00 call _RTC_CheckStackVars - 0016c 8b c7 mov eax, edi - 0016e 48 8b 8d 50 01 + 00165 e8 00 00 00 00 call _RTC_CheckStackVars + 0016a 8b c7 mov eax, edi + 0016c 48 8b 8d 50 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00175 48 33 cd xor rcx, rbp - 00178 e8 00 00 00 00 call __security_check_cookie - 0017d 48 8d a5 68 01 + 00173 48 33 cd xor rcx, rbp + 00176 e8 00 00 00 00 call __security_check_cookie + 0017b 48 8d a5 68 01 00 00 lea rsp, QWORD PTR [rbp+360] - 00184 5f pop rdi - 00185 5d pop rbp - 00186 c3 ret 0 + 00182 5f pop rdi + 00183 5d pop rbp + 00184 c3 ret 0 ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ENDP ; JitEmitRipRelativeMovD _TEXT ENDS ; COMDAT text$x @@ -1203,7 +1220,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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -1214,7 +1231,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -1226,141 +1243,147 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -1371,7 +1394,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -1383,141 +1406,147 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1528,7 +1557,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1539,98 +1568,104 @@ $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 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 + 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 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 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 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 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 $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 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 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de 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.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -1647,73 +1682,79 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 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__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1732,7 +1773,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : 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 @@ -1743,251 +1784,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 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 + 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 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 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 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 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 -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 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 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 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 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 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 -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 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 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -2010,34 +2051,40 @@ $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 8d 0d 00 00 + 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:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 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 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2054,18 +2101,25 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2080,18 +2134,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -2106,18 +2167,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipMovInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -2130,14 +2198,21 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 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 3a73c8e..0f4029f 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.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 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 -__02E23235_vcruntime_new@h DB 01H +__8906660C_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,55 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__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 __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__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 +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_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 msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -98,9 +97,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@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@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 @@ -123,6 +122,7 @@ 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+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 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+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+379 + DD imagerel $LN6+377 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+377 + DD imagerel $LN6+375 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+368 + DD imagerel $LN6+366 DD imagerel $unwind$?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -241,32 +241,22 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@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' +??_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' 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 @@ -278,7 +268,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 0feH + DB 0faH DB 02H DB 09eH DB 00H @@ -297,7 +287,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 035054619H +$unwind$?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H DD 0117331cH DD 070100031H DD 0500fH @@ -324,16 +314,6 @@ 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 @@ -345,7 +325,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 01dH, 02H + DB 015H, 02H DB 02H DB 09eH DB 00H @@ -364,7 +344,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 035054619H +$unwind$?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H DD 0117331cH DD 070100033H DD 0500fH @@ -391,16 +371,6 @@ 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 @@ -412,7 +382,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 @@ -431,7 +401,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 035054619H +$unwind$?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H DD 0117331cH DD 070100033H DD 0500fH @@ -460,40 +430,35 @@ 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 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -538,38 +503,90 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$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 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 -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H +$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 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 -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$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 DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$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 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 @@ -579,7 +596,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 4 @@ -604,125 +621,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 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 + 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 01 00 00 mov rcx, QWORD PTR [rsp+424] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 40 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 29 : UCHAR RawData[] = { 0x80, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 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 + 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 ; 30 : ; 31 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 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 + 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 00 00 mov QWORD PTR $T5[rbp], rax - 0007f 48 83 bd 28 01 + 0007d 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00087 74 2c je SHORT $LN3@JitEmitRip - 00089 c7 44 24 20 00 + 00085 74 2c je SHORT $LN3@JitEmitRip + 00087 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00091 41 b9 07 00 00 + 0008f 41 b9 07 00 00 00 mov r9d, 7 - 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 + 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 00 00 mov rcx, QWORD PTR $T5[rbp] - 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 + 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 00 00 mov QWORD PTR tv79[rbp], rax - 000b3 eb 0b jmp SHORT $LN4@JitEmitRip + 000b1 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000b5 48 c7 85 38 01 + 000b3 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c0 48 8b 85 38 01 + 000be 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000c7 48 89 85 08 01 + 000c5 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000ce 48 8b 85 08 01 + 000cc 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000d5 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000d3 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 32 : *(PINT32)&Link->RawData[2] = RipDelta; - 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 + 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 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f0 89 14 08 mov DWORD PTR [rax+rcx], edx + 000ee 89 14 08 mov DWORD PTR [rax+rcx], edx ; 33 : *(PUCHAR)&Link->RawData[6] = (UCHAR)Value; - 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 + 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 00 00 movzx edx, BYTE PTR Value$[rbp] - 0010b 88 14 08 mov BYTE PTR [rax+rcx], dl + 00109 88 14 08 mov BYTE PTR [rax+rcx], dl ; 34 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 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 + 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 ; 35 : NcAppendToBlock(Block, Link); - 0012e 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 00132 48 8b 8d 70 01 + 0012c 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 00130 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00139 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00137 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 36 : return TRUE; - 0013e b8 01 00 00 00 mov eax, 1 + 0013c b8 01 00 00 00 mov eax, 1 ; 37 : } - 00143 8b f8 mov edi, eax - 00145 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00149 48 8d 15 00 00 + 00141 8b f8 mov edi, eax + 00143 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00147 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 00150 e8 00 00 00 00 call _RTC_CheckStackVars - 00155 8b c7 mov eax, edi - 00157 48 8b 8d 40 01 + 0014e e8 00 00 00 00 call _RTC_CheckStackVars + 00153 8b c7 mov eax, edi + 00155 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0015e 48 33 cd xor rcx, rbp - 00161 e8 00 00 00 00 call __security_check_cookie - 00166 48 8d a5 58 01 + 0015c 48 33 cd xor rcx, rbp + 0015f e8 00 00 00 00 call __security_check_cookie + 00164 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 0016d 5f pop rdi - 0016e 5d pop rbp - 0016f c3 ret 0 + 0016b 5f pop rdi + 0016c 5d pop rbp + 0016d c3 ret 0 ?JitEmitRipRelativeOrB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeOrB _TEXT ENDS ; COMDAT text$x @@ -783,7 +800,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:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -808,127 +825,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 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 + 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 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 50 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 17 : UCHAR RawData[] = { 0x66, 0x83, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 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 + 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 ; 18 : ; 19 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 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 + 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 00 00 mov QWORD PTR $T5[rbp], rax - 00087 48 83 bd 38 01 + 00085 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0008f 74 2c je SHORT $LN3@JitEmitRip - 00091 c7 44 24 20 00 + 0008d 74 2c je SHORT $LN3@JitEmitRip + 0008f c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00099 41 b9 09 00 00 + 00097 41 b9 09 00 00 00 mov r9d, 9 - 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 + 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 00 00 mov rcx, QWORD PTR $T5[rbp] - 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 + 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 00 00 mov QWORD PTR tv79[rbp], rax - 000bb eb 0b jmp SHORT $LN4@JitEmitRip + 000b9 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bd 48 c7 85 48 01 + 000bb 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c8 48 8b 85 48 01 + 000c6 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000cf 48 89 85 18 01 + 000cd 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d6 48 8b 85 18 01 + 000d4 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000dd 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000db 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 20 : *(PINT32)&Link->RawData[3] = RipDelta; - 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 + 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 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f8 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f6 89 14 08 mov DWORD PTR [rax+rcx], edx ; 21 : *(PUSHORT)&Link->RawData[7] = (USHORT)Value; - 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 + 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 00 00 movzx edx, WORD PTR Value$[rbp] - 00113 66 89 14 08 mov WORD PTR [rax+rcx], dx + 00111 66 89 14 08 mov WORD PTR [rax+rcx], dx ; 22 : 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 + 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 ; 23 : NcAppendToBlock(Block, Link); - 00137 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 0013b 48 8b 8d 80 01 + 00135 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 00139 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 + 00140 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 24 : return TRUE; - 00147 b8 01 00 00 00 mov eax, 1 + 00145 b8 01 00 00 00 mov eax, 1 ; 25 : } - 0014c 8b f8 mov edi, eax - 0014e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00152 48 8d 15 00 00 + 0014a 8b f8 mov edi, eax + 0014c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00150 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeOrW@@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 + 00157 e8 00 00 00 00 call _RTC_CheckStackVars + 0015c 8b c7 mov eax, edi + 0015e 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 + 00165 48 33 cd xor rcx, rbp + 00168 e8 00 00 00 00 call __security_check_cookie + 0016d 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 + 00174 5f pop rdi + 00175 5d pop rbp + 00176 c3 ret 0 ?JitEmitRipRelativeOrW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeOrW _TEXT ENDS ; COMDAT text$x @@ -989,7 +1006,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:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -1014,128 +1031,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 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 + 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 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 50 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B214C6C1_RipOrInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__97B6E7BF_RipOrInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : UCHAR RawData[] = { 0x81, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 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 + 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 ; 6 : ; 7 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 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 + 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 00 00 mov QWORD PTR $T5[rbp], rax - 0008b 48 83 bd 38 01 + 00089 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00093 74 2c je SHORT $LN3@JitEmitRip - 00095 c7 44 24 20 00 + 00091 74 2c je SHORT $LN3@JitEmitRip + 00093 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0009d 41 b9 0a 00 00 + 0009b 41 b9 0a 00 00 00 mov r9d, 10 - 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 + 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 00 00 mov rcx, QWORD PTR $T5[rbp] - 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 + 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 00 00 mov QWORD PTR tv79[rbp], rax - 000bf eb 0b jmp SHORT $LN4@JitEmitRip + 000bd eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000c1 48 c7 85 48 01 + 000bf 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000cc 48 8b 85 48 01 + 000ca 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000d3 48 89 85 18 01 + 000d1 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000da 48 8b 85 18 01 + 000d8 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000e1 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000df 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 8 : *(PINT32)&Link->RawData[2] = RipDelta; - 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 + 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 00 mov edx, DWORD PTR RipDelta$[rbp] - 000fc 89 14 08 mov DWORD PTR [rax+rcx], edx + 000fa 89 14 08 mov DWORD PTR [rax+rcx], edx ; 9 : *(PULONG)&Link->RawData[6] = Value; - 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 + 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 00 mov edx, DWORD PTR Value$[rbp] - 00116 89 14 08 mov DWORD PTR [rax+rcx], edx + 00114 89 14 08 mov DWORD PTR [rax+rcx], edx ; 10 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 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 + 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 ; 11 : NcAppendToBlock(Block, Link); - 00139 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 0013d 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] - 00144 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 ; 12 : return TRUE; - 00149 b8 01 00 00 00 mov eax, 1 + 00147 b8 01 00 00 00 mov eax, 1 ; 13 : } - 0014e 8b f8 mov edi, eax - 00150 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00154 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:?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 0015b e8 00 00 00 00 call _RTC_CheckStackVars - 00160 8b c7 mov eax, edi - 00162 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] - 00169 48 33 cd xor rcx, rbp - 0016c e8 00 00 00 00 call __security_check_cookie - 00171 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] - 00178 5f pop rdi - 00179 5d pop rbp - 0017a c3 ret 0 + 00176 5f pop rdi + 00177 5d pop rbp + 00178 c3 ret 0 ?JitEmitRipRelativeOrD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeOrD _TEXT ENDS ; COMDAT text$x @@ -1196,7 +1213,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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -1207,7 +1224,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -1219,141 +1236,147 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -1364,7 +1387,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -1376,141 +1399,147 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1521,7 +1550,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1532,98 +1561,104 @@ $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 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 + 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 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 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 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 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 $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 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 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de 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.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -1640,73 +1675,79 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 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__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1725,7 +1766,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : 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 @@ -1736,251 +1777,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 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 + 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 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 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 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 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 -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 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 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 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 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 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 -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 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 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -2003,34 +2044,40 @@ $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 8d 0d 00 00 + 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:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 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 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2047,18 +2094,25 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2073,18 +2127,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -2099,18 +2160,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipOrInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipOrInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -2123,14 +2191,21 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 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 49c9b4d..3bcc9cc 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.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 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 -__02E23235_vcruntime_new@h DB 01H +__8906660C_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,55 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__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 __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__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 +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_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 msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -98,9 +97,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@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@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 @@ -123,6 +122,7 @@ 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+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 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+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD imagerel $LN6 - DD imagerel $LN6+379 + DD imagerel $LN6+377 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+377 + DD imagerel $LN6+375 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+368 + DD imagerel $LN6+366 DD imagerel $unwind$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z pdata ENDS ; COMDAT pdata @@ -241,32 +241,22 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@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' +??_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' 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 @@ -278,7 +268,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 0feH + DB 0faH DB 02H DB 09eH DB 00H @@ -297,7 +287,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 035054619H +$unwind$?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H DD 0117331cH DD 070100031H DD 0500fH @@ -324,16 +314,6 @@ 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 @@ -345,7 +325,7 @@ xdata SEGMENT $ip2state$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DB 06H DB 00H DB 00H - DB 01dH, 02H + DB 015H, 02H DB 02H DB 09eH DB 00H @@ -364,7 +344,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 035054619H +$unwind$?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H DD 0117331cH DD 070100033H DD 0500fH @@ -391,16 +371,6 @@ 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 @@ -412,7 +382,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 @@ -431,7 +401,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 035054619H +$unwind$?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z DD 035054419H DD 0117331cH DD 070100033H DD 0500fH @@ -460,40 +430,35 @@ 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 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -538,38 +503,90 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$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 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 -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H +$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 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 -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$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 DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$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 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 @@ -579,7 +596,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 4 @@ -604,125 +621,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 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 + 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 01 00 00 mov rcx, QWORD PTR [rsp+424] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 40 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 40 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 29 : UCHAR RawData[] = { 0x80, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 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 + 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 ; 30 : ; 31 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 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 + 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 00 00 mov QWORD PTR $T5[rbp], rax - 0007f 48 83 bd 28 01 + 0007d 48 83 bd 28 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00087 74 2c je SHORT $LN3@JitEmitRip - 00089 c7 44 24 20 00 + 00085 74 2c je SHORT $LN3@JitEmitRip + 00087 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00091 41 b9 07 00 00 + 0008f 41 b9 07 00 00 00 mov r9d, 7 - 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 + 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 00 00 mov rcx, QWORD PTR $T5[rbp] - 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 + 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 00 00 mov QWORD PTR tv79[rbp], rax - 000b3 eb 0b jmp SHORT $LN4@JitEmitRip + 000b1 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000b5 48 c7 85 38 01 + 000b3 48 c7 85 38 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c0 48 8b 85 38 01 + 000be 48 8b 85 38 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000c7 48 89 85 08 01 + 000c5 48 89 85 08 01 00 00 mov QWORD PTR $T4[rbp], rax - 000ce 48 8b 85 08 01 + 000cc 48 8b 85 08 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000d5 48 89 45 28 mov QWORD PTR Link$[rbp], rax + 000d3 48 89 45 28 mov QWORD PTR Link$[rbp], rax ; 32 : *(PINT32)&Link->RawData[2] = RipDelta; - 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 + 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 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f0 89 14 08 mov DWORD PTR [rax+rcx], edx + 000ee 89 14 08 mov DWORD PTR [rax+rcx], edx ; 33 : *(PUCHAR)&Link->RawData[6] = (UCHAR)Value; - 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 + 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 00 00 movzx edx, BYTE PTR Value$[rbp] - 0010b 88 14 08 mov BYTE PTR [rax+rcx], dl + 00109 88 14 08 mov BYTE PTR [rax+rcx], dl ; 34 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 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 + 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 ; 35 : NcAppendToBlock(Block, Link); - 0012e 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] - 00132 48 8b 8d 70 01 + 0012c 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp] + 00130 48 8b 8d 70 01 00 00 mov rcx, QWORD PTR Block$[rbp] - 00139 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock + 00137 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 36 : return TRUE; - 0013e b8 01 00 00 00 mov eax, 1 + 0013c b8 01 00 00 00 mov eax, 1 ; 37 : } - 00143 8b f8 mov edi, eax - 00145 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00149 48 8d 15 00 00 + 00141 8b f8 mov edi, eax + 00143 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00147 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 00150 e8 00 00 00 00 call _RTC_CheckStackVars - 00155 8b c7 mov eax, edi - 00157 48 8b 8d 40 01 + 0014e e8 00 00 00 00 call _RTC_CheckStackVars + 00153 8b c7 mov eax, edi + 00155 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 0015e 48 33 cd xor rcx, rbp - 00161 e8 00 00 00 00 call __security_check_cookie - 00166 48 8d a5 58 01 + 0015c 48 33 cd xor rcx, rbp + 0015f e8 00 00 00 00 call __security_check_cookie + 00164 48 8d a5 58 01 00 00 lea rsp, QWORD PTR [rbp+344] - 0016d 5f pop rdi - 0016e 5d pop rbp - 0016f c3 ret 0 + 0016b 5f pop rdi + 0016c 5d pop rbp + 0016d c3 ret 0 ?JitEmitRipRelativeXorB@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeXorB _TEXT ENDS ; COMDAT text$x @@ -783,7 +800,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:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -808,127 +825,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 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 + 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 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 50 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 17 : UCHAR RawData[] = { 0x66, 0x81, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 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 + 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 ; 18 : ; 19 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 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 + 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 00 00 mov QWORD PTR $T5[rbp], rax - 00087 48 83 bd 38 01 + 00085 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 0008f 74 2c je SHORT $LN3@JitEmitRip - 00091 c7 44 24 20 00 + 0008d 74 2c je SHORT $LN3@JitEmitRip + 0008f c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 00099 41 b9 09 00 00 + 00097 41 b9 09 00 00 00 mov r9d, 9 - 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 + 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 00 00 mov rcx, QWORD PTR $T5[rbp] - 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 + 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 00 00 mov QWORD PTR tv79[rbp], rax - 000bb eb 0b jmp SHORT $LN4@JitEmitRip + 000b9 eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000bd 48 c7 85 48 01 + 000bb 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000c8 48 8b 85 48 01 + 000c6 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000cf 48 89 85 18 01 + 000cd 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000d6 48 8b 85 18 01 + 000d4 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000dd 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000db 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 20 : *(PINT32)&Link->RawData[3] = RipDelta; - 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 + 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 00 mov edx, DWORD PTR RipDelta$[rbp] - 000f8 89 14 08 mov DWORD PTR [rax+rcx], edx + 000f6 89 14 08 mov DWORD PTR [rax+rcx], edx ; 21 : *(PUSHORT)&Link->RawData[7] = (USHORT)Value; - 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 + 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 00 00 movzx edx, WORD PTR Value$[rbp] - 00113 66 89 14 08 mov WORD PTR [rax+rcx], dx + 00111 66 89 14 08 mov WORD PTR [rax+rcx], dx ; 22 : 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 + 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 ; 23 : NcAppendToBlock(Block, Link); - 00137 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 0013b 48 8b 8d 80 01 + 00135 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] + 00139 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 + 00140 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock ; 24 : return TRUE; - 00147 b8 01 00 00 00 mov eax, 1 + 00145 b8 01 00 00 00 mov eax, 1 ; 25 : } - 0014c 8b f8 mov edi, eax - 0014e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00152 48 8d 15 00 00 + 0014a 8b f8 mov edi, eax + 0014c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00150 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeXorW@@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 + 00157 e8 00 00 00 00 call _RTC_CheckStackVars + 0015c 8b c7 mov eax, edi + 0015e 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 + 00165 48 33 cd xor rcx, rbp + 00168 e8 00 00 00 00 call __security_check_cookie + 0016d 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 + 00174 5f pop rdi + 00175 5d pop rbp + 00176 c3 ret 0 ?JitEmitRipRelativeXorW@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeXorW _TEXT ENDS ; COMDAT text$x @@ -989,7 +1006,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:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z _TEXT SEGMENT RawData$ = 8 @@ -1014,128 +1031,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 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 + 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 01 00 00 mov rcx, QWORD PTR [rsp+440] - 00035 48 8b 05 00 00 + 00033 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003c 48 33 c5 xor rax, rbp - 0003f 48 89 85 50 01 + 0003a 48 33 c5 xor rax, rbp + 0003d 48 89 85 50 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00046 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__A82FFE99_RipXorInst@cpp - 0004d e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 00044 48 8d 0d 00 00 + 00 00 lea rcx, OFFSET FLAT:__1FB70083_RipXorInst@cpp + 0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 5 : UCHAR RawData[] = { 0x81, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - 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 + 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 ; 6 : ; 7 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData)); - 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 + 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 00 00 mov QWORD PTR $T5[rbp], rax - 0008b 48 83 bd 38 01 + 00089 48 83 bd 38 01 00 00 00 cmp QWORD PTR $T5[rbp], 0 - 00093 74 2c je SHORT $LN3@JitEmitRip - 00095 c7 44 24 20 00 + 00091 74 2c je SHORT $LN3@JitEmitRip + 00093 c7 44 24 20 00 00 00 00 mov DWORD PTR [rsp+32], 0 - 0009d 41 b9 0a 00 00 + 0009b 41 b9 0a 00 00 00 mov r9d, 10 - 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 + 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 00 00 mov rcx, QWORD PTR $T5[rbp] - 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 + 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 00 00 mov QWORD PTR tv79[rbp], rax - 000bf eb 0b jmp SHORT $LN4@JitEmitRip + 000bd eb 0b jmp SHORT $LN4@JitEmitRip $LN3@JitEmitRip: - 000c1 48 c7 85 48 01 + 000bf 48 c7 85 48 01 00 00 00 00 00 00 mov QWORD PTR tv79[rbp], 0 $LN4@JitEmitRip: - 000cc 48 8b 85 48 01 + 000ca 48 8b 85 48 01 00 00 mov rax, QWORD PTR tv79[rbp] - 000d3 48 89 85 18 01 + 000d1 48 89 85 18 01 00 00 mov QWORD PTR $T4[rbp], rax - 000da 48 8b 85 18 01 + 000d8 48 8b 85 18 01 00 00 mov rax, QWORD PTR $T4[rbp] - 000e1 48 89 45 38 mov QWORD PTR Link$[rbp], rax + 000df 48 89 45 38 mov QWORD PTR Link$[rbp], rax ; 8 : *(PINT32)&Link->RawData[2] = RipDelta; - 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 + 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 00 mov edx, DWORD PTR RipDelta$[rbp] - 000fc 89 14 08 mov DWORD PTR [rax+rcx], edx + 000fa 89 14 08 mov DWORD PTR [rax+rcx], edx ; 9 : *(PULONG)&Link->RawData[6] = Value; - 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 + 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 00 mov edx, DWORD PTR Value$[rbp] - 00116 89 14 08 mov DWORD PTR [rax+rcx], edx + 00114 89 14 08 mov DWORD PTR [rax+rcx], edx ; 10 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize); - 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 + 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 ; 11 : NcAppendToBlock(Block, Link); - 00139 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp] - 0013d 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] - 00144 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 ; 12 : return TRUE; - 00149 b8 01 00 00 00 mov eax, 1 + 00147 b8 01 00 00 00 mov eax, 1 ; 13 : } - 0014e 8b f8 mov edi, eax - 00150 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00154 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:?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z$rtcFrameData - 0015b e8 00 00 00 00 call _RTC_CheckStackVars - 00160 8b c7 mov eax, edi - 00162 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] - 00169 48 33 cd xor rcx, rbp - 0016c e8 00 00 00 00 call __security_check_cookie - 00171 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] - 00178 5f pop rdi - 00179 5d pop rbp - 0017a c3 ret 0 + 00176 5f pop rdi + 00177 5d pop rbp + 00178 c3 ret 0 ?JitEmitRipRelativeXorD@@YAHPEAU_NATIVE_CODE_BLOCK@@HK@Z ENDP ; JitEmitRipRelativeXorD _TEXT ENDS ; COMDAT text$x @@ -1196,7 +1213,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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -1207,7 +1224,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -1219,141 +1236,147 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -1364,7 +1387,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -1376,141 +1399,147 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__B7A2C865_xloctime - 00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 -; 174 : _Cvt = _Lobj._Getcvt(); +; 177 : _Cvt = _Lobj._Getcvt(); - 0002a 48 8d 95 c8 00 + 00041 48 8d 95 c8 00 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1521,7 +1550,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -1532,98 +1561,104 @@ $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 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 + 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 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 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 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 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 $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 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 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de 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.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -1640,73 +1675,79 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 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__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1725,7 +1766,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : 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 @@ -1736,251 +1777,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 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 + 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 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 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 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 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 -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 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 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 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 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 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 -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 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 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -2003,34 +2044,40 @@ $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 8d 0d 00 00 + 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:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 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 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2047,18 +2094,25 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -2073,18 +2127,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -2099,18 +2160,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\RipXorInst.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipXorInst.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -2123,14 +2191,21 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 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 8ddcd2c..cec3ca3 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.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 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 -__02E23235_vcruntime_new@h DB 01H +__8906660C_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,55 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__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 __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__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 +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_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 msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -97,9 +96,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@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@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 @@ -117,79 +116,80 @@ 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+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 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+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$?VmEmitVmEnter@@YAPEAEPEAK@Z DD imagerel $LN3 - DD imagerel $LN3+43 + DD imagerel $LN3+66 DD imagerel $unwind$?VmEmitVmEnter@@YAPEAEPEAK@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?VmEmitVmExit@@YAPEAEPEAK@Z DD imagerel $LN3 - DD imagerel $LN3+43 + DD imagerel $LN3+66 DD imagerel $unwind$?VmEmitVmExit@@YAPEAEPEAK@Z pdata ENDS ; COMDAT rtc$TMZ @@ -210,72 +210,67 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@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' +??_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' CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?VmEmitVmExit@@YAPEAEPEAK@Z DD 025051301H +$unwind$?VmEmitVmExit@@YAPEAEPEAK@Z DD 025052a01H DD 010e2313H DD 07007001dH DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?VmEmitVmEnter@@YAPEAEPEAK@Z DD 025051301H +$unwind$?VmEmitVmEnter@@YAPEAEPEAK@Z DD 025052a01H 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 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -320,38 +315,90 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$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 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 025051801H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H 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 -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$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 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 -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$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 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 @@ -361,7 +408,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?VmEmitVmExit@@YAPEAEPEAK@Z _TEXT SEGMENT Size$ = 224 @@ -376,25 +423,31 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__927DDB6F_VirtualMachine@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 10 : return NULL; - 0001f 33 c0 xor eax, eax + 00036 33 c0 xor eax, eax ; 11 : } - 00021 48 8d a5 c8 00 + 00038 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00028 5f pop rdi - 00029 5d pop rbp - 0002a c3 ret 0 + 0003f 5f pop rdi + 00040 5d pop rbp + 00041 c3 ret 0 ?VmEmitVmExit@@YAPEAEPEAK@Z ENDP ; VmEmitVmExit _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?VmEmitVmEnter@@YAPEAEPEAK@Z _TEXT SEGMENT Size$ = 224 @@ -409,25 +462,31 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__927DDB6F_VirtualMachine@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 6 : return NULL; - 0001f 33 c0 xor eax, eax + 00036 33 c0 xor eax, eax ; 7 : } - 00021 48 8d a5 c8 00 + 00038 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00028 5f pop rdi - 00029 5d pop rbp - 0002a c3 ret 0 + 0003f 5f pop rdi + 00040 5d pop rbp + 00041 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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -438,7 +497,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -450,141 +509,147 @@ $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 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 + 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 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -595,7 +660,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -607,141 +672,147 @@ $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 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 + 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 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -752,7 +823,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -763,98 +834,104 @@ $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 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 + 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 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 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 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 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 $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 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 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de 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.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -871,73 +948,79 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 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__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -956,7 +1039,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : 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 @@ -967,251 +1050,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 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 + 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 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 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 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 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 -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 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 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 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 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 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 -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 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 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1234,34 +1317,40 @@ $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 8d 0d 00 00 + 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:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 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 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1278,18 +1367,25 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1304,18 +1400,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1330,18 +1433,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VirtualMachine.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1354,14 +1464,21 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 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 2eeb0d6..fdee2fa 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.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 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 -__02E23235_vcruntime_new@h DB 01H +__8906660C_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,55 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__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 __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__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 +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_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 msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -97,9 +96,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@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@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 @@ -117,79 +116,80 @@ 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+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 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+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+69 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+119 + DD imagerel $LN7+142 DD imagerel $unwind$?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z pdata ENDS ; COMDAT rtc$TMZ @@ -210,72 +210,67 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@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' +??_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' CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 025051301H +$unwind$?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z DD 025052a01H DD 010e2313H DD 070070021H DD 05006H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025051301H +$unwind$?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z DD 025052a01H 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 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -320,38 +315,90 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$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 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 -$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025051801H +$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 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 -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$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 DD 01132318H DD 0700c001dH DD 0500bH + DD imagerel __CxxFrameHandler4 + DD imagerel $cppxdata$?__empty_global_delete@@YAXPEAX_K@Z xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$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 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 @@ -361,7 +408,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z _TEXT SEGMENT T$1 = 8 @@ -377,66 +424,72 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BBE970CC_Virtualizer@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 9 : for (PNATIVE_CODE_LINK T = Block->Start; T && T != Block->End->Next; T = T->Next) - 0001f 48 8b 85 00 01 + 00036 48 8b 85 00 01 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 $LN2@ViValidate: - 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 + 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 $LN4@ViValidate: - 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 + 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 00 00 mov rax, QWORD PTR Block$[rbp] - 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 + 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 ; 10 : { ; 11 : if (!ViCanHandleInst(T)) - 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 + 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 ; 12 : return FALSE; - 00062 33 c0 xor eax, eax - 00064 eb 07 jmp SHORT $LN1@ViValidate + 00079 33 c0 xor eax, eax + 0007b eb 07 jmp SHORT $LN1@ViValidate $LN5@ViValidate: ; 13 : } - 00066 eb c7 jmp SHORT $LN2@ViValidate + 0007d eb c7 jmp SHORT $LN2@ViValidate $LN3@ViValidate: ; 14 : return TRUE; - 00068 b8 01 00 00 00 mov eax, 1 + 0007f b8 01 00 00 00 mov eax, 1 $LN1@ViValidate: ; 15 : } - 0006d 48 8d a5 e8 00 + 00084 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 + 0008b 5f pop rdi + 0008c 5d pop rbp + 0008d c3 ret 0 ?ViValidateNativeCodeBlock@@YAHPEAU_NATIVE_CODE_BLOCK@@@Z ENDP ; ViValidateNativeCodeBlock _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?ViCanHandleInst@@YAHPEAU_NATIVE_CODE_LINK@@@Z _TEXT SEGMENT Link$ = 224 @@ -451,25 +504,31 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__BBE970CC_Virtualizer@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 5 : return TRUE; - 0001f b8 01 00 00 00 mov eax, 1 + 00036 b8 01 00 00 00 mov eax, 1 ; 6 : } - 00024 48 8d a5 c8 00 + 0003b 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00042 5f pop rdi + 00043 5d pop rbp + 00044 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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -480,7 +539,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -492,141 +551,147 @@ $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 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 + 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 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -637,7 +702,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -649,141 +714,147 @@ $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 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 + 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 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -794,7 +865,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -805,98 +876,104 @@ $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 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 + 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 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 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 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 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 $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 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 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de 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.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -913,73 +990,79 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 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__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -998,7 +1081,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : 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 @@ -1009,251 +1092,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 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 + 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 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 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 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 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 -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 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 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 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 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 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 -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 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 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1276,34 +1359,40 @@ $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 8d 0d 00 00 + 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:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 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 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1320,18 +1409,25 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1346,18 +1442,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1372,18 +1475,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\Virtualizer.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\Virtualizer.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1396,14 +1506,21 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 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 1041f49..ce1c7a5 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.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 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 -__02E23235_vcruntime_new@h DB 01H +__8906660C_vcruntime_new@h DB 01H __A2143F22_corecrt_stdio_config@h DB 01H __829E1958_corecrt_wstdio@h DB 01H __6DFAE8B8_stdio@h DB 01H @@ -33,48 +33,47 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__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 __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__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 +__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 msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -89,9 +88,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@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@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 @@ -109,79 +108,80 @@ 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+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 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+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$??0_VM_CODE_LINK@@QEAA@XZ DD imagerel $LN3 - DD imagerel $LN3+134 + DD imagerel $LN3+157 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+94 + DD imagerel $LN3+117 DD imagerel $unwind$??0_VM_CODE_LINK@@QEAA@K@Z pdata ENDS ; COMDAT rtc$TMZ @@ -202,72 +202,67 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@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' +??_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' CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_VM_CODE_LINK@@QEAA@K@Z DD 025051701H +$unwind$??0_VM_CODE_LINK@@QEAA@K@Z DD 025052e01H DD 01122317H DD 0700b001dH DD 0500aH xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??0_VM_CODE_LINK@@QEAA@XZ DD 025051301H +$unwind$??0_VM_CODE_LINK@@QEAA@XZ DD 025052a01H 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 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -312,38 +307,90 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$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 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 025051801H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H 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 -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$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 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 -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$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 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 @@ -353,7 +400,7 @@ __JustMyCode_Default PROC ; COMDAT __JustMyCode_Default ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ??0_VM_CODE_LINK@@QEAA@K@Z _TEXT SEGMENT this$ = 224 @@ -370,44 +417,50 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D8D4E86A_VmCode@cpp - 0001e e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 13 : : _VM_CODE_LINK() - 00023 48 8b 8d e0 00 + 0003a 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR this$[rbp] - 0002a e8 00 00 00 00 call ??0_VM_CODE_LINK@@QEAA@XZ ; _VM_CODE_LINK::_VM_CODE_LINK + 00041 e8 00 00 00 00 call ??0_VM_CODE_LINK@@QEAA@XZ ; _VM_CODE_LINK::_VM_CODE_LINK ; 15 : Label = LabelId; - 0002f 48 8b 85 e0 00 + 00046 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00036 8b 8d e8 00 00 + 0004d 8b 8d e8 00 00 00 mov ecx, DWORD PTR LabelId$[rbp] - 0003c 89 48 14 mov DWORD PTR [rax+20], ecx + 00053 89 48 14 mov DWORD PTR [rax+20], ecx ; 16 : Flags = CODE_FLAG_IS_LABEL; - 0003f 48 8b 85 e0 00 + 00056 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00046 c7 40 10 01 00 + 0005d c7 40 10 01 00 00 00 mov DWORD PTR [rax+16], 1 ; 17 : } - 0004d 48 8b 85 e0 00 + 00064 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00054 48 8d a5 c8 00 + 0006b 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 + 00072 5f pop rdi + 00073 5d pop rbp + 00074 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:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ??0_VM_CODE_LINK@@QEAA@XZ _TEXT SEGMENT this$ = 224 @@ -422,62 +475,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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__D8D4E86A_VmCode@cpp - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 5 : Flags = 0; - 0001f 48 8b 85 e0 00 + 00036 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00026 c7 40 10 00 00 + 0003d c7 40 10 00 00 00 00 mov DWORD PTR [rax+16], 0 ; 6 : Next = Prev = NULL; - 0002d 48 8b 85 e0 00 + 00044 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00034 48 c7 40 08 00 + 0004b 48 c7 40 08 00 00 00 00 mov QWORD PTR [rax+8], 0 - 0003c 48 8b 85 e0 00 + 00053 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00043 48 c7 00 00 00 + 0005a 48 c7 00 00 00 00 00 mov QWORD PTR [rax], 0 ; 7 : Label = 0; - 0004a 48 8b 85 e0 00 + 00061 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 00051 c7 40 14 00 00 + 00068 c7 40 14 00 00 00 00 mov DWORD PTR [rax+20], 0 ; 8 : RawData = NULL; - 00058 48 8b 85 e0 00 + 0006f 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0005f 48 c7 40 18 00 + 00076 48 c7 40 18 00 00 00 00 mov QWORD PTR [rax+24], 0 ; 9 : RawDataSize = 0UL; - 00067 48 8b 85 e0 00 + 0007e 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0006e c7 40 20 00 00 + 00085 c7 40 20 00 00 00 00 mov DWORD PTR [rax+32], 0 ; 10 : } - 00075 48 8b 85 e0 00 + 0008c 48 8b 85 e0 00 00 00 mov rax, QWORD PTR this$[rbp] - 0007c 48 8d a5 c8 00 + 00093 48 8d a5 c8 00 00 00 lea rsp, QWORD PTR [rbp+200] - 00083 5f pop rdi - 00084 5d pop rbp - 00085 c3 ret 0 + 0009a 5f pop rdi + 0009b 5d pop rbp + 0009c 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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -488,7 +547,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -500,141 +559,147 @@ $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 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 + 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 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -645,7 +710,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -657,141 +722,147 @@ $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 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 + 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 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -802,7 +873,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -813,98 +884,104 @@ $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 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 + 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 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 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 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 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 $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 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 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de 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.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -921,73 +998,79 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 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__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -1006,7 +1089,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : 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 @@ -1017,251 +1100,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 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 + 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 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 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 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 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 -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 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 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 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 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 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 -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 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 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1284,34 +1367,40 @@ $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 8d 0d 00 00 + 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:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 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 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1328,18 +1417,25 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1354,18 +1450,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1380,18 +1483,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\VmCode.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\VmCode.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1404,14 +1514,21 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 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 5b174d2..86565e7 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.29.30038.1 +; Listing generated by Microsoft (R) Optimizing Compiler Version 19.27.29111.0 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 -__02E23235_vcruntime_new@h DB 01H +__8906660C_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,55 @@ __6D390390_corecrt_wio@h DB 01H __1157D6BA_corecrt_wtime@h DB 01H __1DC1E279_stat@h DB 01H __93DC0B45_wchar@h DB 01H -__256B8DBF_cstddef DB 01H +__5DDA4519_cstddef DB 01H __741AE07E_corecrt_math@h DB 01H -__80A05712_cstdlib DB 01H -__44860E64_limits DB 01H -__D1154D4E_type_traits DB 01H +__F8119FB4_cstdlib DB 01H +__F2870A2C_limits DB 01H +__85A9AA98_type_traits DB 01H __20BB4341_malloc@h DB 01H -__BDCC0984_vcruntime_exception@h DB 01H -__89F7010A_exception DB 01H -__7CE971A6_xutility DB 01H -__DD38B15A_xmemory DB 01H -__CB45C7EF_tuple DB 01H -__3033C7F7_xpolymorphic_allocator@h DB 01H -__A9EB37C6_xstring DB 01H -__8CFB8476_string DB 01H -__6D66DEAE_cmath DB 01H -__00B93B57_stdexcept DB 01H -__79ECA8A5_xcall_once@h DB 01H +__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 __A0B61CF9_time@h DB 01H -__8476F639_xthreads@h DB 01H -__2FB352A6_atomic DB 01H -__C6B1BA85_system_error DB 01H -__65F43743_vcruntime_typeinfo@h DB 01H -__0C3682BF_typeinfo DB 01H -__F82802EA_memory DB 01H -__D46D55E5_xfacet DB 01H -__13BF6177_xlocinfo DB 01H -__76D543F7_xlocale DB 01H -__2A5A1664_xiosbase DB 01H -__E85225E0_xlocnum DB 01H -__FD1AE8DD_ios DB 01H -__C33030D8_xlocmon DB 01H -__B7A2C865_xloctime DB 01H -__8660297E_xed-util@h DB 01H -__F79B480A_xed-iform-map@h DB 01H -__F5B5218E_xed-inst@h DB 01H -__68D74A7D_xed-flags@h DB 01H -__A4B65E9F_xed-operand-accessors@h DB 01H -__E8B35E51_xed-state@h DB 01H -__1E3F2A25_xed-encode@h DB 01H -__1C89993E_xed-encoder-hl@h DB 01H -__0AA8C18B_xed-decoded-inst-api@h DB 01H -__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 +__886F7F70_xloctime DB 01H +__296E625F_xed-util@h DB 01H +__642E1CAE_xed-iform-map@h DB 01H +__5ABB6AAF_xed-inst@h DB 01H +__24115468_xed-flags@h DB 01H +__818AA54B_xed-operand-accessors@h DB 01H +__A4754044_xed-state@h DB 01H +__73AE08D0_xed-encode@h DB 01H +__CDA14B9B_xed-encoder-hl@h DB 01H +__5981B539_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 msvcjmc ENDS PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete @@ -95,9 +94,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@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var -PUBLIC ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string' +PUBLIC ??_C@_0GI@LHMPPKJI@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 @@ -115,67 +114,68 @@ 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+41 + DD imagerel $LN3+65 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_K@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_K@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+46 + DD imagerel $LN3+70 DD imagerel $unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3 - DD imagerel $LN3+51 + DD imagerel $LN3+75 DD imagerel $unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$wmemcpy DD imagerel $LN3 - DD imagerel $LN3+83 + DD imagerel $LN3+106 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+586 + DD imagerel $LN12+584 DD imagerel $unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD imagerel $LN4 - DD imagerel $LN4+142 + DD imagerel $LN4+165 DD imagerel $unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD imagerel $LN7 - DD imagerel $LN7+200 + DD imagerel $LN7+223 DD imagerel $unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z pdata ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT pdata pdata SEGMENT $pdata$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD imagerel $LN5 - DD imagerel $LN5+356 + DD imagerel $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 ENDS ; COMDAT rtc$TMZ @@ -196,58 +196,53 @@ CONST ENDS CONST SEGMENT ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string' CONST ENDS -; COMDAT ??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ CONST SEGMENT -??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' +??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro' DB 'gram Files (x86)\Microsoft Visual Studio\2019\Community\VC\To' - DB 'ols\MSVC\14.29.30037\include\xlocnum', 00H ; `string' + DB 'ols\MSVC\14.27.29110\include\xlocnum', 00H ; `string' CONST ENDS ; COMDAT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA _DATA SEGMENT ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA DD 05aH ; `std::_Maklocwcs'::`1'::__LINE__Var _DATA ENDS -; COMDAT ??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ +; COMDAT ??_C@_0GI@DEICPIDJ@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' +??_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' 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 025061e01H +$unwind$??$_Getvals@_W@?$time_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025061e01H +$unwind$??$_Getvals@_W@?$time_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@IEAAX_WAEBV_Locinfo@1@@Z DD 025063501H DD 0119231eH DD 070120026H DD 050106011H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035051d01H +$unwind$??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z DD 035053401H DD 0118331dH DD 07011002bH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035051301H +$unwind$?_Maklocwcs@std@@YAPEA_WPEB_W@Z DD 035052a01H DD 010e3313H DD 070070027H DD 05006H xdata ENDS -; COMDAT voltbl -voltbl SEGMENT -_volmd DW 040H - DW 0231H -voltbl ENDS ; COMDAT xdata xdata SEGMENT -$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054719H +$unwind$??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z DD 035054519H DD 0118331dH DD 070110047H DD 05010H @@ -292,38 +287,90 @@ CONST SEGMENT CONST ENDS ; COMDAT xdata xdata SEGMENT -$unwind$wmemcpy DD 025051d01H +$unwind$wmemcpy DD 025053401H DD 0118231dH DD 07011001dH DD 05010H xdata ENDS ; COMDAT xdata xdata SEGMENT -$unwind$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD 025051d01H +$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 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 025051801H +$unwind$?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z DD 025052f19H 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 -$unwind$?__empty_global_delete@@YAXPEAX_K@Z DD 025051801H +$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 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 -$unwind$?__empty_global_delete@@YAXPEAX@Z DD 025051301H +$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 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 @@ -333,7 +380,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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -344,7 +391,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -356,141 +403,147 @@ $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 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 + 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 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xloctime +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\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 @@ -501,7 +554,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 -; 173 : void __CLR_OR_THIS_CALL _Getvals(_Elem2, const _Locinfo& _Lobj) { // get values +; 176 : 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 @@ -513,141 +566,147 @@ $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 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 + 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 00 00 lea rdx, QWORD PTR $T1[rbp] - 00031 48 8b 8d 40 01 + 00048 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00038 ff 15 00 00 00 + 0004f ff 15 00 00 00 00 call QWORD PTR __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ - 0003e 48 8b 8d 30 01 + 00055 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00045 48 8d 79 2c lea rdi, QWORD PTR [rcx+44] - 00049 48 8b f0 mov rsi, rax - 0004c b9 2c 00 00 00 mov ecx, 44 ; 0000002cH - 00051 f3 a4 rep movsb + 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 -; 175 : -; 176 : if (is_same_v<_Elem2, wchar_t>) { +; 178 : +; 179 : if (is_same_v<_Elem2, wchar_t>) { - 00053 33 c0 xor eax, eax - 00055 83 f8 01 cmp eax, 1 - 00058 74 5c je SHORT $LN2@Getvals + 0006a 33 c0 xor eax, eax + 0006c 83 f8 01 cmp eax, 1 + 0006f 74 5c je SHORT $LN2@Getvals -; 177 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); +; 180 : _Days = reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getdays()))); - 0005a 48 8b 8d 40 01 + 00071 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00061 ff 15 00 00 00 + 00078 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ - 00067 48 8b c8 mov rcx, rax - 0006a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0006f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00076 48 89 41 10 mov QWORD PTR [rcx+16], rax + 0008d 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 178 : _Months = +; 181 : _Months = - 0007a 48 8b 8d 40 01 + 00091 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 00081 ff 15 00 00 00 + 00098 ff 15 00 00 00 00 call QWORD PTR __imp_?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ - 00087 48 8b c8 mov rcx, rax - 0008a e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 0008f 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 00096 48 89 41 18 mov QWORD PTR [rcx+24], rax + 000ad 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 179 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); -; 180 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); +; 182 : reinterpret_cast(_Maklocwcs(reinterpret_cast(_Lobj._W_Getmonths()))); +; 183 : _Ampm = reinterpret_cast(_Maklocwcs(L":AM:am:PM:pm")); - 0009a 48 8d 0d 00 00 + 000b1 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ - 000a1 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs - 000a6 48 8b 8d 30 01 + 000b8 e8 00 00 00 00 call ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs + 000bd 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 000ad 48 89 41 20 mov QWORD PTR [rcx+32], rax + 000c4 48 89 41 20 mov QWORD PTR [rcx+32], rax -; 181 : } else { +; 184 : } else { - 000b1 e9 a3 00 00 00 jmp $LN3@Getvals + 000c8 e9 a3 00 00 00 jmp $LN3@Getvals $LN2@Getvals: -; 182 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); +; 185 : _Days = _Maklocstr(_Lobj._Getdays(), static_cast<_Elem*>(nullptr), _Cvt); - 000b6 48 8b 85 30 01 + 000cd 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000bd 48 83 c0 2c add rax, 44 ; 0000002cH - 000c1 48 89 85 08 01 + 000d4 48 83 c0 2c add rax, 44 ; 0000002cH + 000d8 48 89 85 08 01 00 00 mov QWORD PTR tv85[rbp], rax - 000c8 48 8b 8d 40 01 + 000df 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 000cf ff 15 00 00 00 + 000e6 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getdays@_Locinfo@std@@QEBAPEBDXZ - 000d5 48 8b 8d 08 01 + 000ec 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv85[rbp] - 000dc 4c 8b c1 mov r8, rcx - 000df 33 d2 xor edx, edx - 000e1 48 8b c8 mov rcx, rax - 000e4 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 000e9 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 000f0 48 89 41 10 mov QWORD PTR [rcx+16], rax + 00107 48 89 41 10 mov QWORD PTR [rcx+16], rax -; 183 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); +; 186 : _Months = _Maklocstr(_Lobj._Getmonths(), static_cast<_Elem*>(nullptr), _Cvt); - 000f4 48 8b 85 30 01 + 0010b 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 000fb 48 83 c0 2c add rax, 44 ; 0000002cH - 000ff 48 89 85 08 01 + 00112 48 83 c0 2c add rax, 44 ; 0000002cH + 00116 48 89 85 08 01 00 00 mov QWORD PTR tv93[rbp], rax - 00106 48 8b 8d 40 01 + 0011d 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Lobj$[rbp] - 0010d ff 15 00 00 00 + 00124 ff 15 00 00 00 00 call QWORD PTR __imp_?_Getmonths@_Locinfo@std@@QEBAPEBDXZ - 00113 48 8b 8d 08 01 + 0012a 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR tv93[rbp] - 0011a 4c 8b c1 mov r8, rcx - 0011d 33 d2 xor edx, edx - 0011f 48 8b c8 mov rcx, rax - 00122 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 00127 48 8b 8d 30 01 + 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 00 00 mov rcx, QWORD PTR this$[rbp] - 0012e 48 89 41 18 mov QWORD PTR [rcx+24], rax + 00145 48 89 41 18 mov QWORD PTR [rcx+24], rax -; 184 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); +; 187 : _Ampm = _Maklocstr(":AM:am:PM:pm", static_cast<_Elem*>(nullptr), _Cvt); - 00132 48 8b 85 30 01 + 00149 48 8b 85 30 01 00 00 mov rax, QWORD PTR this$[rbp] - 00139 48 83 c0 2c add rax, 44 ; 0000002cH - 0013d 4c 8b c0 mov r8, rax - 00140 33 d2 xor edx, edx - 00142 48 8d 0d 00 00 + 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 00 00 lea rcx, OFFSET FLAT:??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ - 00149 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr - 0014e 48 8b 8d 30 01 + 00160 e8 00 00 00 00 call ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z ; std::_Maklocstr + 00165 48 8b 8d 30 01 00 00 mov rcx, QWORD PTR this$[rbp] - 00155 48 89 41 20 mov QWORD PTR [rcx+32], rax + 0016c 48 89 41 20 mov QWORD PTR [rcx+32], rax $LN3@Getvals: -; 185 : } -; 186 : } +; 188 : } +; 189 : } - 00159 48 8d a5 10 01 + 00170 48 8d a5 10 01 00 00 lea rsp, QWORD PTR [rbp+272] - 00160 5f pop rdi - 00161 5e pop rsi - 00162 5d pop rbp - 00163 c3 ret 0 + 00177 5f pop rdi + 00178 5e pop rsi + 00179 5d pop rbp + 0017a 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.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -658,7 +717,7 @@ __formal$ = 328 __formal$ = 336 ??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 522 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { +; 563 : _Elem* __CRTDECL _Maklocstr(const char* _Ptr, _Elem*, const _Locinfo::_Cvtvec&) { $LN7: 00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8 @@ -669,98 +728,104 @@ $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 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 + 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 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00030 e8 00 00 00 00 call strlen - 00035 48 ff c0 inc rax - 00038 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - -; 525 : -; 526 : _Elem* _Ptrdest = static_cast<_Elem*>(_calloc_dbg(_Count, sizeof(_Elem), _CRT_BLOCK, __FILE__, __LINE__)); - - 0003c c7 44 24 20 0e - 02 00 00 mov DWORD PTR [rsp+32], 526 ; 0000020eH - 00044 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 0004b 41 b8 02 00 00 + 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 00 mov r8d, 2 - 00051 ba 01 00 00 00 mov edx, 1 - 00056 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0005a ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 00060 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00077 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax -; 527 : -; 528 : if (!_Ptrdest) { +; 568 : +; 569 : if (!_Ptrdest) { - 00064 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00069 75 05 jne SHORT $LN5@Maklocstr + 0007b 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 00080 75 05 jne SHORT $LN5@Maklocstr -; 529 : _Xbad_alloc(); +; 570 : _Xbad_alloc(); - 0006b e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 00082 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN5@Maklocstr: -; 530 : } -; 531 : -; 532 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { +; 571 : } +; 572 : +; 573 : for (_Elem* _Ptrnext = _Ptrdest; 0 < _Count; --_Count, ++_Ptrnext, ++_Ptr) { - 00070 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] - 00074 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00078 eb 27 jmp SHORT $LN4@Maklocstr + 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 $LN2@Maklocstr: - 0007a 48 8b 45 08 mov rax, QWORD PTR _Count$[rbp] - 0007e 48 ff c8 dec rax - 00081 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00085 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 00089 48 ff c0 inc rax - 0008c 48 89 45 48 mov QWORD PTR _Ptrnext$1[rbp], rax - 00090 48 8b 85 40 01 + 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 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00097 48 ff c0 inc rax - 0009a 48 89 85 40 01 + 000ae 48 ff c0 inc rax + 000b1 48 89 85 40 01 00 00 mov QWORD PTR _Ptr$[rbp], rax $LN4@Maklocstr: - 000a1 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000a6 76 12 jbe SHORT $LN3@Maklocstr + 000b8 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000bd 76 12 jbe SHORT $LN3@Maklocstr -; 533 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); +; 574 : *_Ptrnext = static_cast<_Elem>(static_cast(*_Ptr)); - 000a8 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] - 000ac 48 8b 8d 40 01 + 000bf 48 8b 45 48 mov rax, QWORD PTR _Ptrnext$1[rbp] + 000c3 48 8b 8d 40 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 000b3 0f b6 09 movzx ecx, BYTE PTR [rcx] - 000b6 88 08 mov BYTE PTR [rax], cl + 000ca 0f b6 09 movzx ecx, BYTE PTR [rcx] + 000cd 88 08 mov BYTE PTR [rax], cl -; 534 : } +; 575 : } - 000b8 eb c0 jmp SHORT $LN2@Maklocstr + 000cf eb c0 jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 535 : -; 536 : return _Ptrdest; +; 576 : +; 577 : return _Ptrdest; - 000ba 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 000d1 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN6@Maklocstr: -; 537 : } +; 578 : } - 000be 48 8d a5 28 01 + 000d5 48 8d a5 28 01 00 00 lea rsp, QWORD PTR [rbp+296] - 000c5 5f pop rdi - 000c6 5d pop rbp - 000c7 c3 ret 0 + 000dc 5f pop rdi + 000dd 5d pop rbp + 000de 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.29.30037\include\xlocnum +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocnum ; COMDAT ?_Maklocwcs@std@@YAPEA_WPEB_W@Z _TEXT SEGMENT _Count$ = 8 @@ -777,73 +842,79 @@ $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 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__E85225E0_xlocnum - 0001a e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 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 ; 91 : const size_t _Count = _CSTD wcslen(_Ptr) + 1; - 0001f 48 8b 8d 20 01 + 00036 48 8b 8d 20 01 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00026 ff 15 00 00 00 + 0003d ff 15 00 00 00 00 call QWORD PTR __imp_wcslen - 0002c 48 ff c0 inc rax - 0002f 48 89 45 08 mov QWORD PTR _Count$[rbp], rax + 00043 48 ff c0 inc rax + 00046 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__)); - 00033 8b 05 00 00 00 + 0004a 8b 05 00 00 00 00 mov eax, DWORD PTR ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA - 00039 83 c0 03 add eax, 3 - 0003c 89 44 24 20 mov DWORD PTR [rsp+32], eax - 00040 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@IIACENIN@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00047 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0004d ba 02 00 00 00 mov edx, 2 - 00052 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 00056 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0005c 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax + 00073 48 89 45 28 mov QWORD PTR _Ptrdest$[rbp], rax ; 94 : ; 95 : if (!_Ptrdest) { - 00060 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 00065 75 05 jne SHORT $LN2@Maklocwcs + 00077 48 83 7d 28 00 cmp QWORD PTR _Ptrdest$[rbp], 0 + 0007c 75 05 jne SHORT $LN2@Maklocwcs ; 96 : _Xbad_alloc(); - 00067 e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0007e e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN2@Maklocwcs: ; 97 : } ; 98 : ; 99 : _CSTD wmemcpy(_Ptrdest, _Ptr, _Count); - 0006c 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 00070 48 8b 95 20 01 + 00083 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] + 00087 48 8b 95 20 01 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 00077 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] - 0007b e8 00 00 00 00 call wmemcpy + 0008e 48 8b 4d 28 mov rcx, QWORD PTR _Ptrdest$[rbp] + 00092 e8 00 00 00 00 call wmemcpy ; 100 : return _Ptrdest; - 00080 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] + 00097 48 8b 45 28 mov rax, QWORD PTR _Ptrdest$[rbp] $LN3@Maklocwcs: ; 101 : } - 00084 48 8d a5 08 01 + 0009b 48 8d a5 08 01 00 00 lea rsp, QWORD PTR [rbp+264] - 0008b 5f pop rdi - 0008c 5d pop rbp - 0008d c3 ret 0 + 000a2 5f pop rdi + 000a3 5d pop rbp + 000a4 c3 ret 0 ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ENDP ; std::_Maklocwcs _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\xlocale +; File C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\xlocale ; COMDAT ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z _TEXT SEGMENT _Count$ = 8 @@ -862,7 +933,7 @@ __formal$ = 552 _Cvt$ = 560 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z PROC ; std::_Maklocstr, COMDAT -; 540 : inline wchar_t* __CRTDECL _Maklocstr(const char* _Ptr, wchar_t*, const _Locinfo::_Cvtvec& _Cvt) { +; 581 : 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 @@ -873,251 +944,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 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 + 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 02 00 00 mov rcx, QWORD PTR [rsp+600] - 00036 48 8b 05 00 00 + 00034 48 8b 05 00 00 00 00 mov rax, QWORD PTR __security_cookie - 0003d 48 33 c5 xor rax, rbp - 00040 48 89 85 f8 01 + 0003b 48 33 c5 xor rax, rbp + 0003e 48 89 85 f8 01 00 00 mov QWORD PTR __$ArrayPad$[rbp], rax - 00047 48 8d 0d 00 00 - 00 00 lea rcx, OFFSET FLAT:__76D543F7_xlocale - 0004e e8 00 00 00 00 call __CheckForDebuggerJustMyCode - -; 541 : // convert C string to wchar_t sequence using _Cvtvec -; 542 : size_t _Count; -; 543 : size_t _Count1; -; 544 : size_t _Wchars; -; 545 : const char* _Ptr1; -; 546 : int _Bytes; -; 547 : wchar_t _Wc; -; 548 : mbstate_t _Mbst1 = {}; - - 00053 48 8d 85 c8 00 + 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 00 00 lea rax, QWORD PTR _Mbst1$[rbp] - 0005a 48 8b f8 mov rdi, rax - 0005d 33 c0 xor eax, eax - 0005f b9 08 00 00 00 mov ecx, 8 - 00064 f3 aa rep stosb + 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 -; 549 : -; 550 : _Count1 = _CSTD strlen(_Ptr) + 1; +; 590 : +; 591 : _Count1 = _CSTD strlen(_Ptr) + 1; - 00066 48 8b 8d 20 02 + 00064 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 0006d e8 00 00 00 00 call strlen - 00072 48 ff c0 inc rax - 00075 48 89 45 28 mov QWORD PTR _Count1$[rbp], rax + 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 -; 551 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { +; 592 : for (_Count = _Count1, _Wchars = 0, _Ptr1 = _Ptr; 0 < _Count; _Count -= _Bytes, _Ptr1 += _Bytes, ++_Wchars) { - 00079 48 8b 45 28 mov rax, QWORD PTR _Count1$[rbp] - 0007d 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00081 48 c7 45 48 00 + 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 00 00 00 mov QWORD PTR _Wchars$[rbp], 0 - 00089 48 8b 85 20 02 + 00087 48 8b 85 20 02 00 00 mov rax, QWORD PTR _Ptr$[rbp] - 00090 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 00094 eb 35 jmp SHORT $LN4@Maklocstr + 0008e 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax + 00092 eb 35 jmp SHORT $LN4@Maklocstr $LN2@Maklocstr: - 00096 48 63 85 84 00 + 00094 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0009d 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 000a1 48 2b c8 sub rcx, rax - 000a4 48 8b c1 mov rax, rcx - 000a7 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 000ab 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 000b2 48 8b 4d 68 mov rcx, QWORD PTR _Ptr1$[rbp] - 000b6 48 03 c8 add rcx, rax - 000b9 48 8b c1 mov rax, rcx - 000bc 48 89 45 68 mov QWORD PTR _Ptr1$[rbp], rax - 000c0 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 000c4 48 ff c0 inc rax - 000c7 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 $LN4@Maklocstr: - 000cb 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 - 000d0 76 3a jbe SHORT $LN3@Maklocstr + 000c9 48 83 7d 08 00 cmp QWORD PTR _Count$[rbp], 0 + 000ce 76 3a jbe SHORT $LN3@Maklocstr -; 552 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { +; 593 : if ((_Bytes = _Mbrtowc(&_Wc, _Ptr1, _Count, &_Mbst1, &_Cvt)) <= 0) { - 000d2 48 8b 85 30 02 + 000d0 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 000d9 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 000de 4c 8d 8d c8 00 + 000d7 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 000dc 4c 8d 8d c8 00 00 00 lea r9, QWORD PTR _Mbst1$[rbp] - 000e5 4c 8b 45 08 mov r8, QWORD PTR _Count$[rbp] - 000e9 48 8b 55 68 mov rdx, QWORD PTR _Ptr1$[rbp] - 000ed 48 8d 8d a4 00 + 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 00 00 lea rcx, QWORD PTR _Wc$[rbp] - 000f4 e8 00 00 00 00 call _Mbrtowc - 000f9 89 85 84 00 00 + 000f2 e8 00 00 00 00 call _Mbrtowc + 000f7 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 000ff 83 bd 84 00 00 + 000fd 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 00106 7f 02 jg SHORT $LN8@Maklocstr + 00104 7f 02 jg SHORT $LN8@Maklocstr -; 553 : break; +; 594 : break; - 00108 eb 02 jmp SHORT $LN3@Maklocstr + 00106 eb 02 jmp SHORT $LN3@Maklocstr $LN8@Maklocstr: -; 554 : } -; 555 : } +; 595 : } +; 596 : } - 0010a eb 8a jmp SHORT $LN2@Maklocstr + 00108 eb 8a jmp SHORT $LN2@Maklocstr $LN3@Maklocstr: -; 556 : -; 557 : ++_Wchars; // count terminating nul +; 597 : +; 598 : ++_Wchars; // count terminating nul - 0010c 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 00110 48 ff c0 inc rax - 00113 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax + 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 -; 558 : -; 559 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); +; 599 : +; 600 : wchar_t* _Ptrdest = static_cast(_calloc_dbg(_Wchars, sizeof(wchar_t), _CRT_BLOCK, __FILE__, __LINE__)); - 00117 c7 44 24 20 2f - 02 00 00 mov DWORD PTR [rsp+32], 559 ; 0000022fH - 0011f 4c 8d 0d 00 00 - 00 00 lea r9, OFFSET FLAT:??_C@_0GI@LEPEPCM@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ - 00126 41 b8 02 00 00 + 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 00 mov r8d, 2 - 0012c ba 02 00 00 00 mov edx, 2 - 00131 48 8b 4d 48 mov rcx, QWORD PTR _Wchars$[rbp] - 00135 ff 15 00 00 00 + 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 00 call QWORD PTR __imp__calloc_dbg - 0013b 48 89 85 e8 00 + 00139 48 89 85 e8 00 00 00 mov QWORD PTR _Ptrdest$[rbp], rax -; 560 : -; 561 : if (!_Ptrdest) { +; 601 : +; 602 : if (!_Ptrdest) { - 00142 48 83 bd e8 00 + 00140 48 83 bd e8 00 00 00 00 cmp QWORD PTR _Ptrdest$[rbp], 0 - 0014a 75 05 jne SHORT $LN9@Maklocstr + 00148 75 05 jne SHORT $LN9@Maklocstr -; 562 : _Xbad_alloc(); +; 603 : _Xbad_alloc(); - 0014c e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc + 0014a e8 00 00 00 00 call ?_Xbad_alloc@std@@YAXXZ ; std::_Xbad_alloc $LN9@Maklocstr: -; 563 : } -; 564 : -; 565 : wchar_t* _Ptrnext = _Ptrdest; +; 604 : } +; 605 : +; 606 : wchar_t* _Ptrnext = _Ptrdest; - 00151 48 8b 85 e8 00 + 0014f 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] - 00158 48 89 85 08 01 + 00156 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax -; 566 : mbstate_t _Mbst2 = {}; +; 607 : mbstate_t _Mbst2 = {}; - 0015f 48 8d 85 28 01 + 0015d 48 8d 85 28 01 00 00 lea rax, QWORD PTR _Mbst2$[rbp] - 00166 48 8b f8 mov rdi, rax - 00169 33 c0 xor eax, eax - 0016b b9 08 00 00 00 mov ecx, 8 - 00170 f3 aa rep stosb + 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 -; 567 : -; 568 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { +; 608 : +; 609 : for (; 0 < _Wchars; _Count -= _Bytes, _Ptr += _Bytes, --_Wchars, ++_Ptrnext) { - 00172 eb 4d jmp SHORT $LN7@Maklocstr + 00170 eb 4d jmp SHORT $LN7@Maklocstr $LN5@Maklocstr: - 00174 48 63 85 84 00 + 00172 48 63 85 84 00 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 0017b 48 8b 4d 08 mov rcx, QWORD PTR _Count$[rbp] - 0017f 48 2b c8 sub rcx, rax - 00182 48 8b c1 mov rax, rcx - 00185 48 89 45 08 mov QWORD PTR _Count$[rbp], rax - 00189 48 63 85 84 00 + 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 00 00 movsxd rax, DWORD PTR _Bytes$[rbp] - 00190 48 8b 8d 20 02 + 0018e 48 8b 8d 20 02 00 00 mov rcx, QWORD PTR _Ptr$[rbp] - 00197 48 03 c8 add rcx, rax - 0019a 48 8b c1 mov rax, rcx - 0019d 48 89 85 20 02 + 00195 48 03 c8 add rcx, rax + 00198 48 8b c1 mov rax, rcx + 0019b 48 89 85 20 02 00 00 mov QWORD PTR _Ptr$[rbp], rax - 001a4 48 8b 45 48 mov rax, QWORD PTR _Wchars$[rbp] - 001a8 48 ff c8 dec rax - 001ab 48 89 45 48 mov QWORD PTR _Wchars$[rbp], rax - 001af 48 8b 85 08 01 + 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 00 00 mov rax, QWORD PTR _Ptrnext$[rbp] - 001b6 48 83 c0 02 add rax, 2 - 001ba 48 89 85 08 01 + 001b4 48 83 c0 02 add rax, 2 + 001b8 48 89 85 08 01 00 00 mov QWORD PTR _Ptrnext$[rbp], rax $LN7@Maklocstr: - 001c1 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 - 001c6 76 40 jbe SHORT $LN6@Maklocstr + 001bf 48 83 7d 48 00 cmp QWORD PTR _Wchars$[rbp], 0 + 001c4 76 40 jbe SHORT $LN6@Maklocstr -; 569 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { +; 610 : if ((_Bytes = _Mbrtowc(_Ptrnext, _Ptr, _Count1, &_Mbst2, &_Cvt)) <= 0) { - 001c8 48 8b 85 30 02 + 001c6 48 8b 85 30 02 00 00 mov rax, QWORD PTR _Cvt$[rbp] - 001cf 48 89 44 24 20 mov QWORD PTR [rsp+32], rax - 001d4 4c 8d 8d 28 01 + 001cd 48 89 44 24 20 mov QWORD PTR [rsp+32], rax + 001d2 4c 8d 8d 28 01 00 00 lea r9, QWORD PTR _Mbst2$[rbp] - 001db 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] - 001df 48 8b 95 20 02 + 001d9 4c 8b 45 28 mov r8, QWORD PTR _Count1$[rbp] + 001dd 48 8b 95 20 02 00 00 mov rdx, QWORD PTR _Ptr$[rbp] - 001e6 48 8b 8d 08 01 + 001e4 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 001ed e8 00 00 00 00 call _Mbrtowc - 001f2 89 85 84 00 00 + 001eb e8 00 00 00 00 call _Mbrtowc + 001f0 89 85 84 00 00 00 mov DWORD PTR _Bytes$[rbp], eax - 001f8 83 bd 84 00 00 + 001f6 83 bd 84 00 00 00 00 cmp DWORD PTR _Bytes$[rbp], 0 - 001ff 7f 02 jg SHORT $LN10@Maklocstr + 001fd 7f 02 jg SHORT $LN10@Maklocstr -; 570 : break; +; 611 : break; - 00201 eb 05 jmp SHORT $LN6@Maklocstr + 001ff eb 05 jmp SHORT $LN6@Maklocstr $LN10@Maklocstr: -; 571 : } -; 572 : } +; 612 : } +; 613 : } - 00203 e9 6c ff ff ff jmp $LN5@Maklocstr + 00201 e9 6c ff ff ff jmp $LN5@Maklocstr $LN6@Maklocstr: -; 573 : -; 574 : *_Ptrnext = L'\0'; +; 614 : +; 615 : *_Ptrnext = L'\0'; - 00208 33 c0 xor eax, eax - 0020a 48 8b 8d 08 01 + 00206 33 c0 xor eax, eax + 00208 48 8b 8d 08 01 00 00 mov rcx, QWORD PTR _Ptrnext$[rbp] - 00211 66 89 01 mov WORD PTR [rcx], ax + 0020f 66 89 01 mov WORD PTR [rcx], ax -; 575 : -; 576 : return _Ptrdest; +; 616 : +; 617 : return _Ptrdest; - 00214 48 8b 85 e8 00 + 00212 48 8b 85 e8 00 00 00 mov rax, QWORD PTR _Ptrdest$[rbp] $LN11@Maklocstr: -; 577 : } +; 618 : } - 0021b 48 8b f8 mov rdi, rax - 0021e 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] - 00222 48 8d 15 00 00 + 00219 48 8b f8 mov rdi, rax + 0021c 48 8d 4d d0 lea rcx, QWORD PTR [rbp-48] + 00220 48 8d 15 00 00 00 00 lea rdx, OFFSET FLAT:??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z$rtcFrameData - 00229 e8 00 00 00 00 call _RTC_CheckStackVars - 0022e 48 8b c7 mov rax, rdi - 00231 48 8b 8d f8 01 + 00227 e8 00 00 00 00 call _RTC_CheckStackVars + 0022c 48 8b c7 mov rax, rdi + 0022f 48 8b 8d f8 01 00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp] - 00238 48 33 cd xor rcx, rbp - 0023b e8 00 00 00 00 call __security_check_cookie - 00240 48 8d a5 08 02 + 00236 48 33 cd xor rcx, rbp + 00239 e8 00 00 00 00 call __security_check_cookie + 0023e 48 8d a5 08 02 00 00 lea rsp, QWORD PTR [rbp+520] - 00247 5f pop rdi - 00248 5d pop rbp - 00249 c3 ret 0 + 00245 5f pop rdi + 00246 5d pop rbp + 00247 c3 ret 0 ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ENDP ; std::_Maklocstr _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI @@ -1140,34 +1211,40 @@ $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 8d 0d 00 00 + 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:__93DC0B45_wchar@h - 00024 e8 00 00 00 00 call __CheckForDebuggerJustMyCode + 0003b e8 00 00 00 00 call __CheckForDebuggerJustMyCode ; 235 : #pragma warning(suppress: 6386) // Buffer overrun ; 236 : return (wchar_t*)memcpy(_S1, _S2, _N*sizeof(wchar_t)); - 00029 48 8b 85 f0 00 + 00040 48 8b 85 f0 00 00 00 mov rax, QWORD PTR _N$[rbp] - 00030 48 d1 e0 shl rax, 1 - 00033 4c 8b c0 mov r8, rax - 00036 48 8b 95 e8 00 + 00047 48 d1 e0 shl rax, 1 + 0004a 4c 8b c0 mov r8, rax + 0004d 48 8b 95 e8 00 00 00 mov rdx, QWORD PTR _S2$[rbp] - 0003d 48 8b 8d e0 00 + 00054 48 8b 8d e0 00 00 00 mov rcx, QWORD PTR _S1$[rbp] - 00044 e8 00 00 00 00 call memcpy + 0005b e8 00 00 00 00 call memcpy ; 237 : } - 00049 48 8d a5 c8 00 + 00060 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 + 00067 5f pop rdi + 00068 5d pop rbp + 00069 c3 ret 0 wmemcpy ENDP _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\XedWrap.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\XedWrap.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1184,18 +1261,25 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00030 5f pop rdi - 00031 5d pop rbp - 00032 c3 ret 0 + 00048 5f pop rdi + 00049 5d pop rbp + 0004a c3 ret 0 ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\XedWrap.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\XedWrap.cpp ; COMDAT ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z _TEXT SEGMENT __formal$ = 224 @@ -1210,18 +1294,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\XedWrap.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\XedWrap.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX_K@Z _TEXT SEGMENT __formal$ = 224 @@ -1236,18 +1327,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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 0002b 5f pop rdi - 0002c 5d pop rbp - 0002d c3 ret 0 + 00043 5f pop rdi + 00044 5d pop rbp + 00045 c3 ret 0 ?__empty_global_delete@@YAXPEAX_K@Z ENDP ; __empty_global_delete _TEXT ENDS ; Function compile flags: /Odtp /RTCsu /ZI -; File C:\@\Work\code-virtualizer\CodeVirtualizer\XedWrap.cpp +; File C:\$Fanta\code-virtualizer\CodeVirtualizer\XedWrap.cpp ; COMDAT ?__empty_global_delete@@YAXPEAX@Z _TEXT SEGMENT __formal$ = 224 @@ -1260,14 +1358,21 @@ $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 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 + 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 00 00 lea rsp, QWORD PTR [rbp+200] - 00026 5f pop rdi - 00027 5d pop rbp - 00028 c3 ret 0 + 0003e 5f pop rdi + 0003f 5d pop rbp + 00040 c3 ret 0 ?__empty_global_delete@@YAXPEAX@Z ENDP ; __empty_global_delete _TEXT ENDS END